簡體   English   中英

處理跨域jquery ajax調用時出錯

[英]Error handling cross domain jquery ajax call

我正在執行一個跨域get操作,如下所示。

$.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+中的客戶端工作。

錯誤不適用於corss域調用,請參閱jquery doku。 錯誤:

注意:不會為跨域腳本和跨域JSONP請求調用此處理程序。

看一下這個答案: JSONP請求錯誤處理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM