Ich versuche Petfinder.com anrufen, um eine Liste unserer Haustiere zu bekommen. Die URL ist http://api.petfinder.com/shelter.getPets?key=xxxxx&id=CA1469&format=jsonJQuery Ajax Anruf erhalten Statuscode 0 "Fehler"
Die URL scheint die JSON in Ordnung zurückzugeben. Aber wenn ich versuche, den Anruf zu machen, bekomme ich "Fehler" und Statuscode 0. Ich habe versucht, jsonp zu verwenden, was zu einem Status von 200, aber einem Parse-Fehler führt. Wenn ich zu xml ändere, habe ich das Ergebnis von Status 0 und "Fehler".
$.ajax({
url: "http://api.petfinder.com/shelter.getPets?key=xxxx&id=CA1469&format=json",
dataType: "json",
type: "GET",
success: function (data) {
alert("hi");
},
error: function (jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
Erhalten Sie einen Fehler "Same Origin" in Ihrer Konsole? Verwenden Sie IE? Cross-Ursprungsanforderungen müssen entweder als JSONP gesendet werden (für die eine ordnungsgemäße JSONP-Antwort erforderlich ist) oder bei aktivierter CORS-Funktion, bei der der Server CORS unterstützt und der Browser CORS unterstützt. jQuery unterstützt CORS in IE <10 nicht. –
Die API-Client-Bibliothek von Trello hat ein gutes Beispiel dafür, wie sie mit der CORS-Unterstützung umgehen: https://trello.com/1/client.coffee – forivall
mögliches Duplikat von [Ajax jqXHR.status == 0 fix error] (http://stackoverflow.com/questions/23802474/ajax-jqxhr-status-0-fix-error) –