2012-04-29 30 views
1

我有一個ASP.NET MVC應用程序,在這裏我用AJAX調用方法:AJAX:如何獲取信息有關的許可拒絕

 $.ajax({ 
      dataType: 'json', 
      url: "/Admin/AllowVideoUpload", 
      type: "POST", 
      data: { val: val }, 
      error: function() { 
       alert('Error'); 
      } 
     }); 

如果成功 - 什麼也沒有發生在客戶端,如果錯誤 - 得到「錯誤' 信息。但錯誤可能是由不同的原因 - 「AllowVideoUpload」方法或用戶失去了他的憑據(AdminController具有屬性'Authorize(Roles =「Admin」)')內的問題。我想區分這兩種類型的錯誤。怎麼做?

回答

0

那些是你的應用程序級的錯誤。所以它應該在成功處理程序中處理。

你可以從它那裏有你提到的是錯誤原因,狀態/錯誤代碼/信息元素動作方法返回json

樣品Json用來錯誤

{ 
    "Status": "Failed", 
    "Message": "Authentication Failed" 
} 

樣品的Json成功的

{ 
    "Status": "Success", 
    "Message": "Successfully Updated" 
} 

閱讀JSON,然後你可以決定做什麼next.may是顯示消息的用戶

$.ajax({ 
     dataType: 'json', 
     url: "/Admin/AllowVideoUpload", 
     type: "POST", 
     data: { val: val }, 
     success:function(data){ 
      if(data.Status=="Success") 
      { 
       //operation success. do whatever 
      } 
      else if(data.Status=="Failed") 
      { 
      alert(data.Message); 
      } 
     }, 
     error: function() { 
      alert('Error'); 
     } 
}); 
+0

所以,所有的錯誤INSI de方法應該是「裏面」成功嗎? – 2012-04-29 13:42:00

+0

@ user285336:您的應用程序特定錯誤。 jQuery ajax錯誤事件用於處理髮生ajax調用時發生的錯誤(例如:請求失敗等)。無論您提到的是您的應用程序級別錯誤。 – Shyju 2012-04-29 13:45:48

+0

它可能是其他原因的錯誤,即用戶在執行ajax調用結束之前離開頁面。 「錯誤」部分將被調用。我想從其他方面區分auth問題。 – 2012-04-29 13:47:28