修改每个ajax请求的数据属性,并使用jQuery

时间:2015-07-20 10:13:54

标签: jquery ajax

我在不同情况下使用以下ajax调用:

$.ajax({
  url: '...',
  type: "POST"
  data: {val: '1', test: 'test1' },
  ...
});

我希望,对于每个ajax启动和“POST”方法,只需要向data属性添加参数。

我用过这个:

$(document).ajaxStart(function(){
    //if type is POST then
    // data.myProp = 1;  or similar
});

如何从ajaxStart获取datatype

修改

如果我使用ajax.preFilter,则无法正常工作。

所以:

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

});

然后:

$.ajax({
    ...,
    data: { myItem: 'tes' },
    ...
});

然后data将不会包含myProp,因为$.ajax声明会覆盖来自data

ajax.preFilter上的数据

我希望将myPropmyItem参数发送到服务器上的某个位置。

1 个答案:

答案 0 :(得分:0)

您可以使用ajaxPrefilter

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

});