$ .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