200/'parsererror' mit jquery, ajax-post an ein https
Ich gelesen habe, viele andere Fragen über dieses argument, aber keiner konnte mein problem lösen.
Ich rufe eine php-Seite auf diese Weise.
$.ajax({
url: 'https://mydomain/page.php',
type: "POST",
data: {
"arg1": arg1,
"arg2": arg2
},
success: function(data, textStatus, xhr) {
//do stuff
},
error: function(xhr, textStatus) {
alert("doLogin\n- readyState: "+xhr.readyState+"\n- status: "+xhr.status);
}
});
Nun, wenn ich dieses Zeug auf dem gleichen server wie das php funktioniert es einwandfrei. Probleme beginnen, wenn ich starten Sie es von localhost.
In diesem Fall erhalte ich die folgende in der xhr:
readyState=0, status=0, statusText="error"
.
Lesen Sie einige Antworten zu dem Thema scheint es zu sein, denn der eine same-origin-restriction, also habe ich ein paar Parameter zu dem Aufruf. vor allem:
dataType:"jsonp",
crossDomain: true,
Anscheinend funktioniert dies besser, denn jetzt erhalte ich readyState=4, status=200, statusText="success"
. Das Problem ist, textStatus="parsererror"
. Ich habe auch versucht andere Dinge als jsonpCallback
, cache
, async
, jsonp
in vielen Konfigurationen mit kein Glück.
Nun bekomme ich keine Daten zurück, die Ursache dieser Aufruf wird nur geben Sie mir ein cookie, das ich brauche.
Meine Frage ist: mache ich die Dinge richtig, für den Anfang? In beiden Fällen, was ist der Grund für einen derartigen Fehler? Bedeutet die Tatsache, dass nenne ich eine 'https'/POST etwas ändern, eher als eine einfache http/GET?
Zweite Frage ist, später werde ich noch zu nennen einige webservices über soap-Anfragen, die Daten zurückgeben im xml-Format. Mit dieser Technik arbeiten (vorausgesetzt die jQuery-doc ist in Ordnung und ich kann schreiben dataType:"jsonp xml"
haben es konvertiert on the fly (und vorausgesetzt, es ist die richtige Technik als auch))? Ich nehme an, es wird nicht, wie jsonp erwartet, dass etwas auf der Linie der callbackFN({...})
eher als eine xml, richtig?
Wenn all dies korrekt ist, was wäre die richtige Vorgehensweise zu sein? Ich kann nicht berühren Sie den server, damit bin ich beschränkt auf client-Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
dataType
alsJSONP
können Sie nur die Daten als JSON.Also, wenn Sie die url (https://mydomain/page.php) keine Antwort ein JSON-Objekt, erhalten Sie Fehler, weil es versucht, zu analysieren, und schlägt fehl.
dataType:"jsonp text"
es könnte die Arbeit, die es verursachen würde, es zu behandeln, als text, ist das richtig? Ich bekomme immer noch den gleichen Fehler, aber.JSONP ist für JSON-format (nur Daten! Also, wenn Sie erhalten einen parseerror dies bedeutet, dass die Ausgabe von PHP möglicherweise nicht wohlgeformte JSON -
Und Nein, es ist nicht leicht möglich, XML als Antwort auf eine JSONP-Aufruf ..