如何在Ajax请求中使用DELETE Verb

时间:2012-05-18 20:29:03

标签: jquery ajax web-services

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

我试过了

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

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

任何人都可以帮助我如何使用ajax请求发送DELETE动词。

3 个答案:

答案 0 :(得分:2)

" ...但它在请求方法中将请求方法显示为OPTIONS。"

这听起来像是跨域请求问题。您是来自同一个域或不同域的请求吗?而且,回应是什么?我还猜测没有第二个请求,因为如果浏览器确定您可以从选项响应发送该请求,则第二个请求基本上是您的原始请求。选项请求是浏览器询问是否可以发出此其他请求。选项响应实质上告诉浏览器可以从哪些域发出某些请求(或沿着这些行的某些内容)。

阅读有关跨源资源共享的更多信息here

答案 1 :(得分:1)

以下是您的回答,享受:Are the PUT, DELETE, HEAD, etc methods available in most web browsers?

根据jQuery文档:

  

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

您使用的浏览器是什么?

答案 2 :(得分: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>