2012-04-29 2 views
1

を拒否する方法:AJAX:許可に関する情報を取得私はAJAXによってメソッドを呼び出すASP.NET MVCアプリケーション、持って

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

成功場合 - エラーならば何も、クライアント側で起こりません - 取得「エラーを'メッセージ。しかし、エラーはさまざまな理由で発生する可能性があります。「AllowVideoUpload」メソッド内の問題またはユーザーの資格情報が失われました(AdminControllerの属性が「Authorize(Roles = "Admin")」)。私はこれらの2つのタイプのエラーを区別したい。どうやってするの?

答えて

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

so、すべてのエラーinsiメソッドは "内部"成功する必要がありますか? –

+0

@ user285336:アプリケーション固有のエラー。 jQuery ajaxエラーイベントは、ajax呼び出し中に発生したエラー(例:リクエストの失敗など)を処理するためのイベントです。あなたが言及したものは、アプリケーションレベルのエラーです。 – Shyju

+0

それはエラーの他の理由、すなわち、ユーザがajax呼び出しを終了する前にページを去ることがあります。 「エラー」セクションが呼び出されます。私は他の人とauthの問題を区別したい。 –

関連する問題