2014-03-05 81 views
0

我尝试使用Chrome(最新版本)执行跨域请求,并且针对POST的Web API操作首先由使用OPTIONS动词的chrome协商。使用jQuery 2.1,我设置了$.support.cors =true和ajax请求属性crossDomain: true。在我的web.config我已经设置:Asp.Net Web Api请求返回405

<httpProtocol> 
    <customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
    <add name="Access-Control-Allow-Headers" value="*" /> 
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, OPTIONS" /> 
    </customHeaders> 
</httpProtocol> 

而且,我已经安装了MS最新的NuGet包该项目,并调用config.EnableCors()的WebApiConfig.Register方法内。

下面是正在发送的请求:

OPTIONS /visitorservice/api/Visitor/PostNewSession/account/4/site/1000 HTTP/1.1 
Host: mg.mycompany.com 
Connection: keep-alive 
Cache-Control: no-cache 
Pragma: no-cache 
Access-Control-Request-Method: POST 
Origin: http://localhost 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36 
Access-Control-Request-Headers: accept, x-mycompanyvisitor, content-type 
Accept: */* 
DNT: 1 
Referer: http://localhost/test2.htm 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 

并且在下面的反应。

HTTP/1.1 405 Method Not Allowed 
Cache-Control: no-cache 
Pragma: no-cache 
Allow: POST 
Content-Type: application/json; charset=utf-8 
Expires: -1 
Server: Microsoft-IIS/7.5 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Headers: * 
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS 
Date: Wed, 05 Mar 2014 15:59:38 GMT 
Content-Length: 76 

我在想什么?其他线程似乎指的是WebDav问题,但没有安装在我的IIS上。

回答

1

这是由包含自定义标题引起的。一旦移除,CORS按预期工作。

+1

嗨,你可以提供更多的细节请你做出的改变? – Remotec

相关问题