Tôi đang cố gắng gọi Petfinder.com để nhận danh sách vật nuôi của chúng tôi. Url là http://api.petfinder.com/shelter.getPets?key=xxxxx&id=CA1469&format=jsonJQuery ajax gọi nhận mã trạng thái 0 "lỗi"
Url dường như trả về tiền phạt JSON. Nhưng khi tôi cố gắng thực hiện cuộc gọi, tôi nhận được "lỗi" và mã trạng thái 0. Tôi đã thử sử dụng jsonp dẫn đến trạng thái 200 nhưng lỗi phân tích cú pháp. Nếu tôi thay đổi thành xml, tôi có kết quả là trạng thái 0 và "lỗi".
$.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);
}
}
});
Bạn có gặp lỗi 'Cùng nguồn gốc 'trong bảng điều khiển của mình không? Bạn đang sử dụng IE? Yêu cầu có nguồn gốc chéo cần phải được gửi dưới dạng JSONP (yêu cầu đáp ứng JSONP đúng) hoặc với CORS được bật, yêu cầu máy chủ hỗ trợ CORS và trình duyệt hỗ trợ CORS. jQuery không hỗ trợ CORS trong IE <10. –
Thư viện ứng dụng API của Trello có một ví dụ tốt về cách chúng xử lý sự hỗ trợ của CORS: https://trello.com/1/client.coffee – forivall
có thể trùng lặp với [Ajax jqXHR.status == 0 lỗi sửa lỗi] (http://stackoverflow.com/questions/23802474/ajax-jqxhr-status-0-fix-error) –