jquery ajax 防止注入,javascript-jQuery在ajax全局事件中注入数据

我正在尝试在ajax请求中注入数据,但是它失败了,我也不知道为什么.我试图查看jQuery源代码,但仍然找不到为什么它不起作用,感谢任何帮助.这是代码:

$('#someElement').ajaxSend(function(e, req, options) {

options.data += (options.data.length > 0 ? '&' : '') + '__token=' + $('input#requestToken').val();

}).ajaxSuccess(function(e, req, options, data) {

if (data.nextToken) {

$('input#requestToken').val(data.nextToken);

delete data.nextToken;

}

});

响应如下所示:

{

"response":

{

"code":0,

// ...

},

"nextToken":"4ded26352b3d44"

}

典型的请求是,例如:

$.getJSON(url, {something:'value'}, function(data) {

if (data.response.code != 0) {

// handle code

}

});

问题在于,发送的数据是“某物=值”;修改后的数据不发送.

**编辑**

当前请求数据是

something: value

并且应该是

something: value

__token: 4ded288eec1f56

在ajaxSend事件回调中,如果在修改后打印options.data的值,则该值为“ something = value& __ token = 4ded288eec1f56”,但是不会发送“ __token = 4ded288eec1f56”.为什么没有在请求中发送?

但更具体地说,如果可能的话,如何“修复”此问题?

解决方法:

我认为问题在于,当jQuery决定调用“ ajaxSend”回调时,参数已用于准备请求.因此,在该处理程序中更改它们无效.

编辑-从@mikermcneil给出答案,我不确定这是正确的.至少可以说,jQuery“ ajax”方法很复杂.他的示例页面似乎可以正常工作,这使我感到困惑,但可能应该只是帮助我认识到我对jQuery内部知识知之甚少:-)

标签:ajax,javascript,jquery

来源: https://codeday.me/bug/20191102/1992239.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值