jQuery ajaxSetup方法不适用于$ .get或$ .post吗?
当$.post
或$.get
被调用时,jQuery $.ajaxSetup
方法是否不尊重选项哈希中的data
字段?
例如,我可能有这个代码:
$.ajaxSetup({ data: { persist: true } });
然后,要发送POST请求,我会这样称呼:
$.post("/create/something", { name: "foo" });
我期待实际的POST数据看起来像这样:
{ persist: true, name: "foo" }
但$.post
发送的唯一数据是{ name: "foo" }
。 有没有办法获得预期的行为? 我正在使用jQuery 1.4.1。
$.ajaxSetup()
设置ajax请求的默认值。 您在请求方法中设置的任何选项都将覆盖这些默认值,而不是合并它们。 你实际上是压倒性的
{ persist: true }
同
{ name: "foo" }
这似乎不再是这种情况 – jQuery跟踪器上的票证表明这是在版本更新中添加的,jQuery现在合并对象而不是替换默认值(感谢@Quincy)。
正如文档所述 , data
选项被转换为查询字符串并附加到GET请求的URL。