我正在调用一个API删除函数,它只接受DELETE动词。
我试过了
$.ajax({
url: 'http://myurl',
type: 'DELETE',
success: function(result) {
// Do something with the result
});
但它将请求方法显示为响应标头中的选项。
任何人都可以帮助我如何使用ajax请求发送DELETE动词。
答案 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>