我有一个类似的代码:
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递增了偏移量变量AFTER它作为数据附加到函数调用。
我的问题是:我做错了什么,或者这不是beforeSend方法用于什么?如果不是,那么按照我的意图做什么是正确的方法呢?
答案 0 :(得分:3)
更正,在调用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;
}
});