2012-03-15 20 views
0
$.ajax({ 
type: "POST", 
url: "/zzz/bbb/abcd.aspx?deleteIDs=" + request_ids, 
contentType: "application/x-www-form-urlencoded", 
data: '', 
dataType: "html", 
complete: function(xhr, status) { 

    if (status == "success") 
    { 
    } 
    else { 
    } 
} 

上記のjqueryコードは、バックグラウンド操作の結果に関係なく、ステータス= "成功"です。私は間違って何をしていますか?aspxページへの投稿時にjquery ajaxエラーがキャッチされない

答えて

1

"成功"はサーバーからの応答のみを示します。サーバレスポンスが200レスポンスの場合、サーバ側のビジネスロジックが問題に遭遇した場合でも、成功とみなされます。

サーバーから400または500のエラーコードを返すか、エラーメッセージが含まれているJSに返信することができます。

たとえば、私は通常、サーバーからのJSON応答を期待しています。サーバー側でエラーが発生した場合は、エラー:trueフラグが含まれており、JSで処理します。だから、一般的なエラーのない応答は次のようになります。

{error:false, html:"My HTML in here"} 

サーバー上のエラーが返されます:

{error:true, errorMsg: "My error message here"} 

例を与えるように編集:上記で概説したように

はJSONレスポンスを期待し、私は可能性があり

$.ajax({ 
    url: 'test.json', 
    dataType: 'json', 
    success: function(data) { 
     if (data.error) { alert(data.errorMsg); } 
     else { 
      //do something with data.html 
     } 
    } 
}); 
+0

私はあなたが言っていることを見る。だから私は応答の本文を解析し、私はasp.netアプリケーションから送信できるいくつかのカスタムメッセージを探しますか? – developer747

+0

例を挙げて私の答えを編集しました。 – Steve

+0

@ developer747、steveの答えは間違いありません。成功関数のパラメータから返されるデータは、ajaxエンドポイントの設計方法によってかなり異なる場合があります。応答のparamをconsole.logで開始し、その内部に正確に何が入っているかを確認する必要があります。確かに分かれば、それを解析し、名前空間とプロパティによって反復処理を開始できます。 – Kristian

1

このコードが使用しているコードであれば、urlフィールドにエラーがあります。二重引用符で改行し、一重引用符で終了します。

+0

申し訳ありません、私はここに投稿する前にURLを編集しました。見積もりエラーを修正しました。 – developer747

関連する問題