JSON und JSONP erzeugen

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" -&gt; 1, "zwei" -&gt; 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 …