1

我正在调用一个 API 删除函数,它只接受 DELETE 动词。

我试过了

$.ajax({
url: 'http://myurl',
type: 'DELETE',
success: function(result) {
    // Do something with the result
});

但它在响应标头中将请求方法显示为选项。

任何人都可以帮助我如何发送带有 ajax 请求的 DELETE 动词。

4

3 回答 3

2

“......但它在响应标头中将请求方法显示为选项。”

这听起来像是一个跨域请求问题。您是从同一个域还是不同域发出请求?此外,反应是什么?我还猜测没有第二个请求,因为如果浏览器确定您可以从选项响应中发送该请求,那么第二个请求本质上就是您的原始请求。选项请求是浏览器询问它是否可以发出其他请求。选项响应本质上告诉浏览器可以从哪些域发出某些请求(或类似的东西)。

在此处阅读有关跨域资源共享的更多信息

于 2012-05-18T21:04:29.403 回答
1

这是您的答案,享受吧:PUT、DELETE、HEAD 等方法在大多数 Web 浏览器中都可用吗?

根据 jQuery 文档:

要发出的请求类型(“POST”或“GET”),默认为“GET”。注意:这里也可以使用其他 HTTP 请求方法,例如 PUT 和 DELETE,但并非所有浏览器都支持。

你使用的是什么浏览器?

于 2012-05-18T20:30:58.657 回答
0

我得到了这个问题的最佳解决方案

http://brockallen.com/2012/06/28/cors-support-in-webapi-mvc-and-iis-with-thinktecture-identitymodel/

在 webconfig 中添加条目

  <modules runAllManagedModulesForAllRequests="true">
        <add name="CorsHttpModule" type="Thinktecture.IdentityModel.Http.Cors.IIS.CorsHttpModule"/>
    </modules>
于 2013-01-30T16:06:42.643 回答