使用带有查询字符串参数的jQuery ajax进行HTTP DELETE

End*_*ono 5 jquery

我想发送这样的 HTTP DELETE:

$.ajax({
    url: "http://localhost/myapp",
    type: "DELETE",
    data: {
        "brown": "fox",
        "lazy": "dog"
    }
});
Run Code Online (Sandbox Code Playgroud)

问题是 jquery 将数据放入请求正文中。我希望将数据放入查询字符串中,例如http://localhost/myapp?brown=fox&lazy=dog.

$.ajax 中是否有一个选项可以做到这一点?还是我必须手动构造查询字符串?

jQuery 1.10.2。

更新:

我的问题的背景:

  • 我知道如何使用 jQuery 的 $.ajax
  • 我知道如何发送 HTTP DELETE 请求
  • jQuery 的可以$.ajax发送 HTTP DELETE
  • 服务器可以很好地接收我的 HTTP DELETE 请求(换句话说:我已经成功地向服务器发送了一个 HTTP DELETE 请求,唯一的问题是服务器误解了我的请求,因为结果 jquery 把参数放在了请求而服务器需要查询字符串中的参数)
  • 我正在向 Web 服务发送请求
  • 我必须使用 HTTP DELETE 因为这就是 Web 服务的提供者设置服务的方式
  • 参数必须在查询字符串中,因为提供者只会读取查询字符串中的参数,而会忽略请求正文

ben*_*rwb 5

jQuery 的 GitHub 页面上对此行为进行了讨论:https://github.com/jquery/jquery/issues/3269

解决方案是手动将查询字符串附加到 URL。jQuery 的$.param函数对此很有帮助:

$.ajax({
    type: "DELETE",
    url: "http://localhost/myapp?" + $.param({
        "brown": "fox",
        "lazy": "dog"
    })
});
Run Code Online (Sandbox Code Playgroud)