2016-12-12 7 views
0

jQueryを通じてAJAX呼び出しを行うシステムがあります。私は$ .ajaxの現在の使用法を変更せずに、受信したすべてのデータをリクエストの詳細で取得し、分析のために別のAPIに送信したいと考えています。jQueryからの応答値の取得成功の前にAJAXコールを呼び出す

私はそのために$ .ajaxSetupを使用しようとしました:

$.ajaxSetup({ 
    beforeSend: function (request, details) { 
    request.success(function (response) { 
     analysis.sendData(details, response); 
    }) 
    } 
}) 

しかし$アヤックスの呼び出しから成功機能は私の成功関数の前に起こった、そして時にはレスポンスオブジェクト内の変更があります。 これらのケースでは、私は同じ、変更された、応答オブジェクトを取得しています。

成功関数の前に応答オブジェクトを読み取る方法はありますか? ありがとう

+0

最初のリクエストからデータを送信する2番目のリクエスト(分析)を行いますか?最初の要求を完了した後..それは正しいですか? – andrepaulo

+0

私は本当にリクエストをする気にしない、私はちょうど元のデータを送信する必要があります。しかし、私はajaxSetupを使ってそれを行うと、すべての成功関数に同じオブジェクト(時には変更されたもの)を送信します。 –

答えて

2

あなたはsuccess関数を呼び出すべきではありません。追加呼び出しを行う関数に置き換えて、元の成功関数を呼び出す必要があります。

$.ajaxSetup({ 
    beforeSend: function(request, settings) { 
     var origSuccess = settings.success; 
     settings.success = function(response, textStatus, jqXHR) { 
      settings.success = origSuccess; 
      analysis.sendData(settings, response, textStatus, jqXHR); 
     } 
    } 
}); 
+0

私はrequest.successを呼び出す必要がありますが、私はsettings.successに気づいていません:) –

関連する問題