将一般参数添加到使用jQuery进行的所有ajax调用中

时间:2011-09-01 13:07:55

标签: javascript jquery

我正在使用AJAX根据需要从服务器加载数据。我目前正在努力将服务器软件更新到最新版本。我注意到的一件事情发生了变化,现在每个请求都需要我传递一个令牌。这意味着我必须为每个请求添加一个新参数。我希望通过一般方法实现这一点,而不必修改每一个AJAX调用。

任何指针?

4 个答案:

答案 0 :(得分:13)

您可以使用$.ajaxSetup中所示的following article方法。

答案 1 :(得分:10)

您要找的是Prefilter,这是页面中的示例:

$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
  // Modify options, control originalOptions, store jqXHR, etc
});

这需要JQuery 1.5。

答案 2 :(得分:0)

使用ajaxPrefilter扩展已发布数据的示例:

$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
    if (originalOptions.type === 'POST' || options.type === 'POST') {
        var modifiedData = $.extend({},originalOptions.context.options.data,{ property:"val",property_two: "val" });
        options.context.options.data = modifiedData;
        options.data = $.param(modifiedData,true);
    } 
});

答案 3 :(得分:0)

我采用了Raja Khoury的解决方案,但由于我的上下文为空,因此对其进行了一些编辑。

这是我想出的:

    $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
        if (originalOptions.type === 'POST' || options.type === 'POST') {
            var modifiedData = $.extend({}, originalOptions.data, { __RequestVerificationToken: getAntiForgeryToken() });
            options.data = $.param(modifiedData);
        }
    });