2012-04-29 73 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