0

每次$.post()调用 jQuerys 方法时,我都无法弄清楚如何挂钩数据。

我有几个事件处理程序,它们在通过 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

您可以使用$.ajaxSetup()执行此操作:

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

请参阅此链接以更好地解释它是如何完成的(以上就是您所需要的)。

于 2013-02-18T17:23:16.113 回答
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 回答