ajaxsetup获取ajax的url_jQuery的ajaxSetup-我只想为GET请求添加默认数据

在ajax驱动的站点中,我使用ajaxSetup添加了一些默认数据,如下:

var revision = '159';

$.ajaxSetup({

dataType: "text json",

contentType: "application/x-www-form-urlencoded; charset=UTF-8",

data: {

r: revision

}

});

这是为了确保在部署新修订版并且前端从后端请求html模板或json-data时出现缓存丢失。因此,后端和前端共享相同的修订号。

问题在于,当前端执行PUT,POST或DELETE时,后端对于获取参数’r’有点不满意。没有办法告诉jQuery的ajax仅在执行GET请求时才使用此数据,而在执行POST,PUT或DELETE请求时则不应该使用此数据。

更新:

因为我知道,所以我首先尝试了beforeSend函数。但是可以更改settings.data,但是在beforeSend返回时,任何更改似乎都消失了。可能是我的错…

:-)

我已经选择了ajaxPreFilter。不过这并不容易。options.data不是对象,而是$

.param(object)的结果,因此第一个挑战是取消参数化。我结束了这个:

var revision = '159';

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {

// do not send data for POST/PUT/DELETE

if (originalOptions.type !== 'GET' || options.type !== 'GET') {

return;

}

var data = originalOptions.data;

if (originalOptions.data !== undefined) {

if (Object.prototype.toString.call(originalOptions.data) === '[object String]') {

data = $.deparam(originalOptions.data); // see http://benalman.com/code/projects/jquery-bbq/examples/deparam/

}

} else {

data = {};

}

options.data = $.param($.extend(data, { r: revision }));

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值