Negli script #170 e #171 abbiamo visto come eseguire chiamate AJAX rispettivamente in GET e POST. Quando dobbiamo effettuare richieste su un dominio diverso da quello in cui ci troviamo, questo tipo di richieste sono effettuabili solo tramite Jsonp. Per effettuare questo tipo di chiamate Angular 2 mette a disposizione la classe JSONP. Questa classe espone il metodo get, che accetta in input l'URL da invocare e un oggetto con i parametri da inviare.
import { Injectable } from '@angular/core'; import { Jsonp, URLSearchParams } from '@angular/http'; @Injectable() export class MyService { constructor(private jsonp: Jsonp) {} search (query: string) { var url = "http://www.site.com/api/get"; var params = new URLSearchParams(); params.set('search', query); params.set('callback', 'JSONP_CALLBACK'); return this.jsonp .get(url, { search: params }) .map(request => /*Codice che elabora la risposta*/); } }
Grazie alla classe JSON, effettuare questo tipo di chiamate è estremamente semplice, poiché si segue un flusso molto simile a quello visto per le classiche chiamate AJAX viste in precedenza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Copiare automaticamente le secret tra più repository di GitHub
Aggiungere interattività lato server in Blazor 8
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Hosting di componenti WebAssembly in un'applicazione Blazor static
Evitare il flickering dei componenti nel prerender di Blazor 8
Gestire liste di tipi semplici con Entity Framework Core
Utilizzare i primary constructor in C#
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Gestire i null nelle reactive form tipizzate di Angular
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Assegnare un valore di default a un parametro di una lambda in C#
Personalizzare l'errore del rate limiting middleware in ASP.NET Core