当$.post或$.get被调用时,jQuery $.ajaxSetup方法是否不尊重选项哈希中的数据字段?
例如,我可能有这个代码:
$.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" }
这似乎不再是这种情况 – a ticket on the jQuery tracker表明这是在版本更新中添加的,jQuery现在合并对象而不是替换默认值(感谢@Quincy).