javascript - 我可以通过 beforeSend 事件更改 jQuery.ajax 的函数调用参数(在数据中发送)吗?

标签 javascript jquery ajax dom-events

我有一段代码是这样的:

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/

相关文章:

javascript - 如何等到在nodejs中执行流异步

javascript - 有没有办法消除过渡元素中特定元素的过渡效果?

javascript - 获取 elements 数组中的每个元素值

javascript - 获取选中下拉列表的数据

javascript - select2 改变背景颜色

javascript - 如何从 javascript Google+ 登录 API 存储用户信息?

javascript - 从 JavaScript 调用 ASP.NET Web 服务方法

javascript - jQuery slideDown() 错误

javascript - 如何在 PUT 后使用一次性消息进行重定向

javascript - session 存储和性能