JSONP mit jQuery

JSON Daten mit jQuery zu senden sollte ja kein Problem mehr sein.

Allerdings: Möchte ich die Daten nicht an „mich“ selbst, sondern an eine andere Domain senden, dann funktioniert das nicht mit jQuery.post(), da JSON unter die „Single Domain“ Policy fällt … die ja auch eine sinnvolle Einrichtung ist.

Allerdings wird es in Zeiten immer engerer Vernetzung mitunter nötig, Daten vom Kundenserver A beim Dienstleister B abzufragen. Dazu braucht man dann JSONP – JSON mit Padding.

Wie bereits erwähnt, unterstützt jQuery.post() das ganze nicht, hauptsächlich darum, weil es nur JSON, HTML, XML oder Script verarbeitet (siehe Doku) … leider 🙁

Doch jQuery’s AJAX Funktionen bieten ja auch die jQuery.ajax()-Methode selbst an, die wir beliebig konfigurieren können.

Heraus kommt dann solch ein Konstrukt, welches in der Lage ist, die JSON Daten auch an andere Domains zu senden. Leider werden diese nicht im „reinen“ JSON Format gesendet, sondern als „data“ Parameter in JSON Format … das Serverscript sollte da etwas tolerant sein 😉

myJSONObject sollte natürlich vorher korrekt initialisiert worden sein.


$.ajax({
type: 'POST',
url: 'http://example.com/subfolder/script.php',
contentType : 'application/x-www-form-urlencoded',
data: {data: JSON.stringify(myJSONObject)},
success: function(data){
console.log('succ');
console.log(data);
},
dataType: 'jsonp'
});

Viel Erfolg damit 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert