2013-02-21 98 views
0

下面的代碼在接收到「401 - 未授權」錯誤時拋出錯誤,不會發生.fail或.always錯誤。有沒有辦法觸發失敗並檢索來自服務器的響應錯誤[myErrorMessage]?JSONP事件不起作用

的JavaScript

$(document).ready(function() { 

    var jqXHR = $.ajax({ 
     url: "http://[myDomain]/[myPage]", 
     dataType: "jsonp", 
     jsonpCallback: "myFunction" 
    }) 
     .done(function() { alert("success"); }) 
     .fail(function() { alert("error"); }) 
     .always(function() { alert("complete"); }); 

    function myFunction(data) { 
     alert("callback"); 
    } 

}); 

請求結果

GET http://[myDomain]/[myPage]?callback=myJsFunction&_=1361463044315 HTTP/1.1 
Host: [myDomain] 
Connection: keep-alive 
Accept: */* 
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 
Referer: http://[myTotallyDifferentDomain]/Default.aspx 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

響應結果

HTTP/1.1 401 Unauthorized 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: application/json; charset=utf-8 
Expires: -1 
Server: Microsoft-IIS/8.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Thu, 21 Feb 2013 16:10:42 GMT 
Content-Length: 67 

{"Message":"[myErrorMessage]"} 

鉻再SULT

GET http://[myDomain]/[myPage]?callback=myJsFunction&_=1361463044315 401 (Unauthorized) jquery.min.js:5 

回答

0

JSONP請求不要去上錯誤的故障處理程序的jQuery 1.9,這是該記錄的行爲。

就我所知,沒有辦法繞過它。 (當然除了使用代理服務器)

http://api.jquery.com/jQuery.ajax/

+0

Thx。我在這裏發佈之前已經檢查過該網站。即使它會迫使我使用較低版本的jQuery尋找解決方法。由於行爲導致異常我需要壓制。 – cilerler 2013-02-21 17:07:04

+0

@cilerler正如你可以在這裏看到的:http://jsfiddle.net/NtzLQ/1/當使用