$ .ajax忽略DELETE请求的数据参数

我刚刚从jQuery 1.3.2更新到1.4.3,并且在发出AJAX

DELETE请求时看到了一些新行为。由于某种原因,在我的data参数中传递的数据没有发送到服务器。例如:

$.ajax({

url: '/example',

data: {id: 12},

type: 'DELETE'

});

最终向发送了DELETE请求/example,没有其他数据。但是,这种类型的调用可以很好地传递参数:

$.ajax({

url: '/example?id=12',

type: 'DELETE'

});

有没有其他人看到过类似的行为?有没有理由不再起作用(即:是设计使然,还是错误)?关于如何使其运作的任何建议?

此外,如果有人想知道为什么我不只是想将参数作为URL字符串的一部分传递,那是因为我最终试图使用$.ajaxSetup回调,在那里提供一些常规参数(即authenticity_token用于防止在Rails中进行伪造)。在尝试jQuery

1.4.3之前,所有这些工作都很好。

回答:

jQuery

仅将参数附加到查询字符串(GET仅用于DELETE请求)(而无正文用于request),因此这是jQuery

1.4.3中的故意行为。

但是,此后发生了更改(此处提交),以允许正文DELETE在1.4.4版本中进行请求。

以上是 $ .ajax忽略DELETE请求的数据参数 的全部内容, 来源链接: utcz.com/qa/405067.html

回到顶部