2012-06-01 11 views
15

Ho scaricato autoload Jquery UI, cercando di remote-jsonp.html. Questa è la funzione ajax ma apro console .. Io non riesco a vedere alcuna richiesta in mia console ...Differenza tra dataType jsonp e JSON

Qual è la differenza tra dataType; "jsonp" e dataType; "JSON"

$("#city").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "http://ws.geonames.org/searchJSON", 
       dataType: "jsonp", 
       data: { 
        featureClass: "P", 
        style: "full", 
        maxRows: 12, 
        name_startsWith: request.term 
       }, 
       success: function(data) { 
        response($.map(data.geonames, function(item) { 
         return { 
          label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName, 
          value: item.name 
         } 
        })); 
       } 
      }); 
     }, 

riferimentohttp://jqueryui.com/demos/autocomplete/remote-jsonp.html

risposta

26

dataType: jsonp per la richiesta di cross-domain, che significa richiesta di dominio diverso e dataType: json per stessa richiesta origine dominio stesso.

Carica in un blocco JSON utilizzando JSONP. Aggiunge un ulteriore "? Callback =?" alla fine del tuo URL per specificare il callback. Disattiva la cache aggiungendo un parametro stringa di query, "_ = [TIMESTAMP]", all'URL a meno che l'opzione cache sia impostata su true.

leggere su same origin policy

Per saperne di più jQuery AJAX

+0

'cross-browser' o' cross-domain'? : s –

+1

@Joy Definitivamente il dominio incrociato. –

+0

@Joy grazie a entrambi – thecodeparadox

7

Con JSONP non si dovrebbe vedere una richiesta AJAX, se è quello che stai cercando. Dovresti comunque vedere una richiesta per la risorsa perché JSONP viene utilizzato per chiamate interdominio per estrarre dati da domini diversi.

Restituisce i dati JSON racchiusi in un nome di funzione. jQuery gestisce il nome della funzione dietro le quinte e passa i dati al tuo gestore di successo. I dati vengono caricati creando dinamicamente un elemento di script con l'attributo src che punta al servizio che viene chiamato e quindi collegato al DOM del browser. Quindi il browser invia una richiesta alla risorsa e il servizio Web risponde con la funzione e i dati di callback.