2012-06-01 14 views
15

Ich lade Jquery UI Autoload, Remote-Jsonp.html suchen. Dies ist Ajax-Funktion, aber ich öffne Konsole .. ich keine Anfrage in meiner Konsole sehen ...Unterschied zwischen dataType Jsonp und JSON

Was ist der Unterschied zwischen datatype, „JSONP“ und 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 
         } 
        })); 
       } 
      }); 
     }, 

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

Antwort

26

dataType: jsonp für domänenübergreifende Anforderung, die Anforderung zu anderen Domäne und dataType: json für gleiche domänen gleichen Ursprungs-Anforderungs-Mittel.

Lädt in einem JSON-Block mit JSONP. Fügt ein zusätzliches "? Callback =?" an das Ende Ihrer URL, um den Rückruf festzulegen. Deaktiviert das Zwischenspeichern, indem der URL ein Abfragezeichenfolgenparameter "_ = [TIMESTAMP]" an die URL angehängt wird, es sei denn, die Option des Caches ist auf "true" gesetzt.

über same origin policy

Lesen Sie mehr über jQuery AJAX

+0

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

+1

@Joy Definitiv domänenübergreifend. –

+0

@Joy danke an beide – thecodeparadox

7

Mit JSONP Lesen Sie keine Ajax-Request sehen sollte, wenn das ist, was Sie suchen. Sie sollten jedoch eine Anforderung für die Ressource sehen, da JSONP für domänenübergreifende Aufrufe verwendet wird, um Daten aus verschiedenen Domänen abzurufen.

Es gibt Ihre JSON-Daten in einem Funktionsnamen zurück. jQuery verarbeitet den Funktionsnamen hinter den Kulissen und übergibt die Daten an Ihren Erfolgs-Handler. Die Daten werden geladen, indem dynamisch ein script-Element mit dem src-Attribut erstellt wird, das auf den aufgerufenen Dienst verweist und dann an das DOM des Browsers angefügt wird. Dann stellt der Browser eine Anfrage an die Ressource und der Webservice antwortet mit der Rückruffunktion und den Daten.

Verwandte Themen