2017-04-07 21 views
-2

エラー:関数を成功から手動で呼び出すにはどうすればよいですか?関数ですか?出来ますか ?このよう成功関数からAjax "error:function()"関数を手動で呼び出す方法はありますか?

success: function(data) { 
    response($.map(data, function(item) { 
     if (item != "some value") { 
     // Call error:function from here 
     } 
     return item; 
    })) 
    }, 
    error: function(xhr, status, error) { 
    var err = eval("(" + xhr.responseText + ")"); 
    alert(err.Message); 
    } 
+0

はい、そうです。 'onSuccess()'関数を作成して、現在の 'success'のコードを' success:onSuccess、error:... 'に代入すると、ajaxを使わずにそれを呼び出すことができます。 – Tushar

+0

あなたはajaxでエラーコールバックという概念を誤解していると思います。質問に詳細を追加すると、問題のための他のより良いオプションがあるかもしれません。 – Jai

+0

サイドノート:なぜ 'eval("( "+ xhr.responseText +") ")'を実行する必要があるのか​​分かりませんが、evalなしで他の方法で行うべきであるという99%の可能性があります。 – JJJ

答えて

2

:ところで

success: function(data) { 
    response($.map(data, function(item) { 
     if (item != "some value") { 
      onError(...) 
     } 
     return item; 
    })) 
}, 
error: onError 


var onError = function(xhr, status, error) { 
    var err = eval("(" + xhr.responseText + ")"); 
    alert(err.Message); 
} 

、evalのを使用するためには、良いアイデアになることはありません。

1

Ajax error関数は、http要求が失敗したときに呼び出されます。 error関数はajax successでは起動できません。 APIドキュメントhereを参照してください。

ajax errorで行う予定の特定のタスクを実行したい場合は、それを関数にラップし、ajax successの中で呼び出すことができます。

2

成功要求は、あなたの質問は意味がありませんバックグラウンドでそれとそう を失敗した場合、要求は

エラーを成功した場合に呼び出される関数が呼び出される関数です。

しかし、はい、コールが成功するか失敗するかは共通ですが、私の提案は、すべての一般的なことを別々の関数で行い、成功とエラーの両方でこの共通の関数を呼び出すことです。

関連する問題