我有一段代码是这样的:
var offset = 1;
$.ajax({
url: /www/loadmoredata,
type: 'POST',
data: {
limit: 1,
offset: offset
},
beforeSend: function (xhr, ajaxOptions, thrownError) {
offset++;
}
});
现在我希望通过 ajax 传递的偏移量为 2,因为我在 beforeSend
中递增,它在处理 AJAX 之前运行。但是,似乎 beforeSend
在偏移量变量作为数据附加到函数调用之后递增。
我的问题是:我是不是做错了什么,或者这不是 beforeSend
方法的用途?如果不是,那么按照我的意图进行操作的正确方法是什么?
最佳答案
更正,在调用 beforeSend 之前,已经构造了 Request,并且您尝试更改的数据对象已放入 Request。这是 beforeSend http://api.jquery.com/jQuery.ajax/ 的文档. ajaxOptions 参数不是当前 ajax 请求的选项。因此,您将能够更改传递到请求中的数据。
也许如果您向我们提供您想要实现的更高层次的想法,我们可以提供帮助?
-- 原始建议 --
偏移量仍在范围内,但您的预期不正确。试一试:
var offset = 1;
$.ajax({
url: /www/loadmoredata,
type: 'POST',
data: {
limit: 1,
offset: offset
},
beforeSend: function (xhr, ajaxOptions, thrownError) {
ajaxOptions.data.offset += ajaxOptions.data.offset;
}
});
关于javascript - 我可以通过 beforeSend 事件更改 jQuery.ajax 的函数调用参数(在数据中发送)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19610880/