gpt4 book ai didi

javascript - jQuery在ajax全局事件中注入(inject)数据

转载 作者:行者123 更新时间:2023-11-29 10:23:44 24 4
gpt4 key购买 nike

我试图在我的 ajax 请求中注入(inject)数据,但它失败了,我不知道为什么。我试图查看 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”;修改后的 data 没有发送。

** 编辑 **

当前请求数据为

something: value

应该是

something: value
__token: 4ded288eec1f56

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

但更具体地说,如果可能的话,如何“解决”这个问题?

最佳答案

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

编辑 — 鉴于@mikermcneil 的回答,我不确定这是正确的。至少可以说,jQuery“ajax”方法很复杂。他的示例页面肯定似乎 可以工作,这让我感到困惑,但可能应该只是帮助我意识到我对 jQuery 内部结构知之甚少:-)

关于javascript - jQuery在ajax全局事件中注入(inject)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6256881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com