2011-12-02 8 views
4

私はいくつかのAjaxアクションを実行するプロジェクトに取り組んでいます。今、ajaxの呼び出しはスクリプトによって行われています。私はそれらのスクリプトに入ることは望ましくありません。jQueryでajax POST応答を聞きます。

さらに、返される応答は非常にランダムであり、把握しやすいものではありません。彼らは私が探すことができる頑丈なクラスを持っていません。

私にとって最良の選択肢は、ページ上のどの機能でも投稿が返されるたびに、自分の関数の1つが起動されることです。電話番号私は電話がになった場所がわからないので、興味はありません。私が知りたいのは、投稿が受信された場合だけです。私はまた実際の投稿応答データに興味がないです。ページが作成したPOSTから何らかの応答を受信するたびに機能を起動したいだけです。

可能なことですか?

答えて

8

.ajaxSetup()をご覧ください。 JSコードのどこからでも起動されたAJAXイベントに対して実行されるコードを追加することができます。

これはトリックを行います、success:イベントで何かを実行するには:

$.ajaxSetup({ 
    success: function() { 
     // Your code 
    } 
}); 

任意のAJAXイベントをキャッチするためには、失敗したかどうか、これを使用します。

$.ajaxSetup({ 
    ajaxComplete: function() { 
     // Your code 
    } 
}); 
+0

これはわかりませんが、これは私が使用できるもののようです。私はそれをチェックします、私はスクリプトが解雇される順序について何かが不思議です、私はそれを理解するでしょう。ありがとう。 –

+0

それは完全に動作します。ありがとう! –

+0

注:グローバルコールバック関数は、それぞれのグローバルAjaxイベントハンドラメソッド - [.ajaxStart()](http://api.jquery.com/ajaxStart/)、[.ajaxStop()](http:// api.jquery.com/ajaxStop/)、[.ajaxComplete()](http://api.jquery.com/ajaxComplete/)、[.ajaxError()](http://api.jquery.com/ajaxError/ )、[.ajaxSuccess()](http://api.jquery.com/ajaxSuccess/)、[.ajaxSend()](http://api.jquery.com/ajaxSend/) - オプションではなく、 '' $ .ajaxSetup() 'のオブジェクトです。 – AlecRust

0

Bojanglesの答えに別のバリエーションをこのような追加の引数を渡すことができるので、要求をより詳細に制御できます。

このコードはすべてのリクエストごとに実行されるため、Click機能をトリガーしたい場合は、毎回リクエストごとにトリガーしたくない場合があります。したがって、条件付きIF文の中にクリックコードをラップします。

$(document).ajaxComplete(function(event,request, settings){ 
    // Your code here 
}); 
関連する問題