使用jQuery方法POST为所有ajax调用添加参数

时间:2015-12-11 02:42:49

标签: javascript jquery ajax

答案与Adding a general parameter to all ajax calls made with jQuery类似,但我需要为方法帖子的ajax调用添加额外的参数:

$.ajax({
  url: url,
  type: "POST",
  data: data,
  success: success,
  dataType: dataType
});

我可以直接在所有ajax调用中添加param(编辑inplace),即通过某种常见配置通过setup param实现这一点吗?

1 个答案:

答案 0 :(得分:0)

感谢您的评论。

我也发现这篇文章很有用:jQuery's ajaxSetup - I would like to add default data for GET requests only

解决方案是(尚未完全测试):

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    if (originalOptions.type == 'POST') {
        originalOptions.data = $.extend(
            originalOptions.data,
            {
                some_dummy_data: 'lksflkdflksdlkf'
            }
        );
    }
});

<强> P.S。我的最终解决方案:

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    if (options.type.toLowerCase() == 'post') {
        options.data += '&some_dummy_data=lksflkdflksdlkf';
        if (options.data.charAt(0) == '&') {
            options.data = options.data.substr(1);
        }
    }
});

的变化:

  1. options.type包含小写的帖子(以防我已添加 toLowerCase
  2. options.data是字符串,而不是对象,所以我通过纯字符串操作重新编写了查询更改
  3. originalOptions没有用,但options有效。