2013-10-10 42 views
1

我有一個Ajax調用這部分是用來檢查,看看是否已登錄。IE不handleing 401錯誤

function userInfo(){ 
    return $.ajax({ 
     url: "http://api.itassistteam.com/api/account/isloggedon", 
     type: "GET", 
     dataType: "json", 
     xhrFields: { 
      withCredentials: true 
     }, 
     statusCode: { 
      401: function(){ 
       console.log("401 error."); 
       deleteCookie(); 
       window.location.href = "./login.html"; 
      } 
     }, 
    }); 
} 

在Chrome中,FF和Opera,它重定向到登錄頁面一樣它應該,但在IE中它什麼都不做。當我在控制檯看,它說

SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied. 

任何想法爲什麼IE不會採取錯誤處理程序和重定向登錄? 「401錯誤」。消息不會出現在控制檯中。

+0

我發現這是IE中的一個錯誤。我不得不將代碼更改爲出錯處理401我要做的事情。這並不理想。我發現有人發佈了另外一個問題,幾乎遇到了同樣的問題。 http://stackoverflow.com/questions/16081267/xmlhttprequest-status-0-instead-of-401-in-ie-10 – AdamMasters

回答

0

而不是statusCode我用錯誤。這是你如何得到錯誤相同的結果,你會與

statusCode : { 
    401: function(){...} 
} 

你得到,

error: function(jqXHR, textStatus, errorThrown){ 
    if(jqXHR.status == 401){ 
     ... 
    } 
} 

這是所有主流瀏覽器不像的StatusCode方法巫不與IE瀏覽器一致。通過這種方式,您可以針對IE中的錯誤進行錯誤處理。