JSON und JSONP mit PHP
Um eine cross-server JSON-Abfrage mit dem JQuery Framework durchzuführen muss der Antwort String als JSONP codiert sein.
Der JavaSkript-Code für einen Cross-Server-Request:
// ... var param = "par1=eins&para2=zwei"; $.getJSON("http://www.anyserver.com"+"?"+param+"&callback=?"+"&_=[TIMESTAMP]", function(data) { var items = []; $.each(data, function(key, val) { items.push('</pre> <ul> <li id="' + key + '">' + val + '</li> </ul> '); }); $('', { 'class': 'my-new-list', html: items.join('') }).appendTo('body'); }); // ...
Durch das hinzufügen des Parameter <em>callback=?</em> wird der JSON-Request in einen JSONP-Request umgewandelt und kann jetzt als Ziel auch einen anderen Server haben.
Meine PHP-Datei welche auf den Request antwortet sieht wie folgt aus:
// ... if (isset($_GET['callback'])) { $CALLBACK = $_GET['callback']; } // ... $data = array("eins" -> 1, "zwei" -> 2, 3, 4); $json = json_encode($data); echo isset($CALLBACK) ? "{$CALLBACK}($json)" : $json;
Getestet in Firefox 18, Internet Explorer 9, Windows Phone 8 Standard Browser, Android 4 Standard Browser
JSON und JSONP mit Express 4.x in NodeJS
Inhalt …