我正在执行一个跨域获取操作,如下所示。

$.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/

10-13 01:08