我正在执行一个跨域获取操作,如下所示。
$.ajax({
type: "GET",
url: "http://localhost:65249/api/item/get",
data: {
searchText: "test"
},
dataType: "jsonp",
async: false,
success: function (results) {
alert(results);
},
error: function (jqXHR, error, errorThrown) {
if (jqXHR.status && jqXHR.status == 401) {
alert("Unauthorized request");
} else if (jqXHR.status && jqXHR.status == 404) {
alert("The requested page not found");
}
}
});
但是请求完成后不会调用成功或错误块。当我在开发人员控制台中调试 java 脚本时,我收到错误,但没有调用 javascript 的错误块。
GET http://localhost:65249/api/item/getallproducts?callback=jQuery182028460139059461653_1396510235829&searchText=test&_=1396510674779 401 (Unauthorized)
最佳答案
不幸的是,如果您使用的是 JSONP,则所有返回错误的请求都会以静默方式失败。这是因为 JSONP 使用脚本标记而不是 XmlHttpRequest。如果您想要触发错误,则需要将 XHR 与 CORS 结合使用。 CORS 需要在服务器端配置,它只在 IE 10+ 的客户端工作。
关于javascript - 处理跨域 jquery ajax 调用时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22830998/