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。