jQuery ajaxSetup方法不适用于$ .get或$ .post吗?

Jus*_*iey 4 javascript ajax jquery

请问jQuery的$.ajaxSetup方法不尊重data字段中选择散列时$.post或者$.get是叫什么名字?

例如,我可能有这个代码:

$.ajaxSetup({ data: { persist: true } });
Run Code Online (Sandbox Code Playgroud)

然后,要发送POST请求,我会这样称呼:

$.post("/create/something", { name: "foo" });
Run Code Online (Sandbox Code Playgroud)

我期待实际的POST数据看起来像这样:

{
  persist: true,
  name: "foo"
}
Run Code Online (Sandbox Code Playgroud)

但是发送的唯一数据$.post{ name: "foo" }.有没有办法获得预期的行为?我正在使用jQuery 1.4.1.

And*_*y E 6

$.ajaxSetup()设置ajax请求的默认值.您在请求方法中设置的任何选项都将覆盖这些默认值,而不是合并它们.你实际上是压倒性的

{ persist: true }
Run Code Online (Sandbox Code Playgroud)

{ name: "foo" }
Run Code Online (Sandbox Code Playgroud)


这似乎不再是这种情况 - jQuery跟踪器上的票证表明这是在版本更新中添加的,jQuery现在合并对象而不是替换默认值(感谢@Quincy).

  • 虽然这个问题已经有一年了,但现在合并正在进行中.如果有人阅读此内容,请在此处发表评论.@see http://bugs.jquery.com/ticket/3387 (2认同)