Eseguire una chiamata JSONP in Angular 2

di Stefano Mostarda, in HTML5, Angular 2,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi