0

jQuerys$.post()メソッドが呼び出されるたびにデータをフックする方法がわかりません。

AJAX 経由でサーバーに送信する前に、ページ全体から値を取得するイベント ハンドラーがいくつかあります。このような呼び出しの例は次のとおりです。

var data = {
    link_data:{'foo': 'bar', 'foo2' : 'bar2'}
};

$.post('some_url',data,function(returned_data){
    //Do something with returned_data
});

$.post()ただし、リクエストが行われるたびに送信される追加のデータをフックする方法があるかどうか疑問に思っていました。

基本的に、私が望んでいたのは、送信される直前にサーバーに送信される「データ」パラメーターを修正して、送信された値が次のようになるようにする方法でした。

{
 token: some_predefined_variable,
 link_data{'foo': 'bar', 'foo2' : 'bar2'}
}

データがサーバーに送信されているすべてのメソッドを修正する必要がないように、これをフックする方法はあります$.post()か?

ありがとう。

更新:最善の解決策が実際にここに投稿されていることがわかりました。投稿データを手動で設定する必要があるのは少し面倒ですが、機能します:)

4

4 に答える 4

3

あなたが使用することができ$.ajaxSetup()ますbeforeSend

$.ajaxSetup({
    beforeSend: function(jqXHR, settings){
        settings.data = {token: some_predefined_variable, link_data : settings.data };
    }
});
于 2013-02-18T17:26:51.767 に答える
1

あなたはこれを試すことができます:

var data = {
    link_data:{'foo': 'bar', 'foo2' : 'bar2'}
};

data.token = some_predefined_variable;
于 2013-02-18T17:22:05.197 に答える
1

次のような独自の関数を実装したい場合があります

function SinmoksPost(userData){
    var x = {
        token: some_predefined_variable,
        data:userData
    }

    $.post('some_url',x,function(returned_data){
        //Do something with returned_data
    });
}

そして、SinmoksPost代わりに呼び出します$.post

于 2013-02-18T17:25:12.353 に答える
1

$.ajaxSetup()でこれを行うことができます:

$.ajaxSetup({
    data: {link_data : {'foo': 'bar', 'foo2' : 'bar2'} }
});

それがどのように行われるかについてのより良い説明については、このリンクを参照してください (上記は実際に必要なすべてです)。

于 2013-02-18T17:23:16.113 に答える