Ich versuche, sowohl die Server-und Client-Seite einer JSON-Anfrage zu erstellen, und ich kann nicht scheinen, damit es funktioniert. Ich habe mir zahlreiche Guides, Blogposts usw. angeschaut, aber so gut wie jeder zeigt nur die Client-Seite.JSONP - Access-Control-Allow-Origin- und MIME-Typ-Fehler
Hier ist mein Client-Code
$.ajax({
dataType: 'application/json',
data: params,
jsonp: 'jsonpCallback',
url: settings.domain + '/httpext.dll?json_cc',
success: function (data) {
//determine the return status
},
error: function (response, status, error) {
//error handling
}
}); //end ajax
gerade jetzt, der Server eine hartcodierte Wert wie dieser
jsonpCallback({"username":"meltingice","posts"1234});
Mein Problem zurückkehrt ist, dass ich nicht die Anforderung und Antwort bekommen, zusammen zu arbeiten. Momentan gibt die Antwort application/json zurück. Wenn ich also meine Anfrage ändere, erwarte ich, dass jsonp it Fehler mit
Ressource als Skript interpretiert, aber mit MIME-Typ application/json übertragen wird. Uncaught ReferenceError: jsonpCallback ist nicht definiert
Zunächst einmal, wie Sie sehen können, habe ich jsonpCallback definiert.
Nun, wenn ich den Datentyp application/json ändern, dann bekomme ich diesen Fehler
XMLHttpRequest cannot load http://myserver/httpext.dll?json_cc&sid=adsfhasjdkfhajksdghjk%3Basdhg&action=SALE&ccCard=&ccNum=&ccExMM=0&ccExYYYY=0&ccCVV2=&holdersName=&totalDue=0&dueDate=11%2F19%2F2010. Origin http://localhost:59905 is not allowed by Access-Control-Allow-Origin.
Wie Sie sehen können, ist es nicht callback=?
in die URL setzen. Es ist ziemlich frustrierend.
Wie richte ich die Serverseite ein, damit ich sie mit jsonp aufrufen kann? Was brauche ich für den Antworttyp? Wie formatiere ich die zurückgegebenen Daten, damit mein clientseitiger Code die Daten zurückziehen kann?
Ich habe den Code geändert, um den Standard-Callback-Namen zu ziehen, aber ich bekomme immer noch andere Fehler. Die Ressource wird als Skript interpretiert, aber mit dem MIME-Typ application/json übertragen. – Josh