在调用$.ajaxSetup
或data
时,jQuery $.post
方法是否不尊重选项哈希中的$.get
字段?
例如,我可能有这段代码:
$.ajaxSetup({ data: { persist: true } });
然后,要发送POST请求,我会这样称呼:
$.post("/create/something", { name: "foo" });
我希望实际的POST数据看起来像这样:
{
persist: true,
name: "foo"
}
但$.post
发送的唯一数据是{ name: "foo" }
。有没有办法获得预期的行为?我正在使用jQuery 1.4.1。
答案 0 :(得分:6)
$.ajaxSetup()
为您的ajax请求设置默认值。您在请求方法中设置的任何选项都将覆盖这些默认值,而不是合并它们。你实际上是在重写
{ persist: true }
与
{ name: "foo" }
<小时/> 这似乎不再是这种情况 - a ticket on the jQuery tracker表明这是在版本更新中添加的,jQuery现在合并对象而不是替换默认值(感谢@Quincy)。
答案 1 :(得分:0)
由于documentation表示data
选项已转换为查询字符串并附加到GET请求的网址。