jQuery XML-REST-Access-Control-Allow-Origin
Rufe ich Version Eine REST-API und immer XMLHttpRequest cannot load https://www10.v1host.com/... Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
javascript-Fehler. Ich bin senden von GET-request und XML-Inhalte erwartet werden zurückgegeben. Dies ist mein jQuery-code:
$.ajax({
dataType: "xml",
url: "https://www10.v1host.com/...",
success: function(data, status, xhr) {
alert("Load was performed.");
}
});
Habe ich geändert dataType: "jsonp
" und mit diesem bekomme ich Antwort in diesem format:
jsonp1294354293197(<?xml version="1.0" encoding="UTF-8"?><Asset ...</Asset>)
Bekomme aber eine andere javascript-Fehler: "Uncaught SyntaxError: Unexpected token <
"
Gibt es eine Möglichkeit, wie man cross-domain XML übrigen Daten, (so etwas wie XMLp) oder einen workaround für jsonp (verhindern, dass das Parsen von JSON-format und meine eigenen - parse XML)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht tun, eine cross-domain XMLHttpRequest Zeitraum. Für eigene analysieren von XML - das wäre nur möglich, wenn Sie könnte ein entflohener string anstelle von bloßen XML vom server. Es gibt keine Magische parse JSON - JSONP-Technik nur Anfragen, die ein anderes script dynamisch hinzufügen
<script src=...>
header, alles, was darin behandelt wird als normales JavaScript.Es ist nicht möglich, solange die server der REST-API (nicht auf dem server) erlaubt die Anfrage von einer anderen Quelle durch die Einstellung des CORS (Cross-Origin Resource Sharing) HTTP-header, zum Beispiel, indem Sie die "Access-Control-Allow-Origin" - HTTP-header in der Antwort:
oder
Jedoch, was Sie tun können, ist rufen Sie Ihren eigenen server mit Ajax, dann verwenden Sie Ihren eigenen server als eine Art proxy, um einen Aufruf an die anderen server in einer anderen Domäne, zum Parsen der XML-oder HTML-Ergebnis mit einem geeigneten parser, und geben das Ergebnis an den client zurück:
ich weiß, es ist eine alte Frage, aber ich denke es gibt eine bessere Antwort, über jQuery-Dokumentation:
Uncaught SyntaxError: Unexpected token <