ruby-on-rails - $.ajax 忽略 DELETE 请求的数据参数

标签 ruby-on-rails ajax parameters jquery

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

$.ajax({
    url: '/example',
    data: {id: 12},
    type: 'DELETE'
});

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

$.ajax({
    url: '/example?id=12',
    type: 'DELETE'
});

还有其他人见过类似的行为吗?这是否有原因不再起作用(即:是设计使然,还是错误)?关于如何让它工作有什么建议吗?

此外,如果有人想知道为什么我不想简单地将参数作为 URL 字符串的一部分传递,那是因为我最终尝试使用 $.ajaxSetup 回调,在那里提供一些通用参数(即用于防止 Rails 中伪造的 authenticity_token 参数)。在尝试 jQuery 1.4.3 之前,这一切都运行良好。

最佳答案

jQuery will only append parameters to the querystring for GET requests only (和 no body for DELETE requests ),所以这是 jQuery 1.4.3 中的故意行为。

但是,从那时起 ( commit here ) 发生了变化,允许在 1.4.4 版本中使用 DELETE 请求的正文。

关于ruby-on-rails - $.ajax 忽略 DELETE 请求的数据参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018982/

相关文章:

ruby-on-rails - pg gem 跟踪/BPT 陷阱 : 5 error on MAC OS X lion

ruby-on-rails - Ruby 中的符号和变量有什​​么区别?

javascript - 改变 <a> 标签行为的正确方法是什么?

asp.net-mvc-3 - 在 MVC3 中,如何通过 ActionLink 将多个值传递给查询字符串参数?

Java 在单独的类中进行验证

ruby-on-rails - 如何分解长行的 Ruby

Jquery ajax刷新,无法让它工作

javascript - 如何用ajax响应替换html元素?

javascript - jquery param() 没有正确编码包含 "&"的参数

ruby-on-rails - 使用 PostgreSQL 时如何安全地将参数传递给 ActiveRecord#select()