2014-09-02 55 views
2

我有2个项目的设置:的WebAPI 2.2 +镀铬= CORS 405错误

  1. 只是用HTML和迪朗达尔,并呼吁使用$阿贾克斯一的WebAPI POST方法的网站。这是在本地主机:33432和调用第二个网站(请注意,除了杜兰达正在添加和使用最新的2.j版本的jquery外,ajax调用没有任何特别的东西)
  2. Web API网站,是在localhost:32287已在文件的global.asax.cs这样启用CORS:

    GlobalConfiguration.Configuration.EnableCors(新EnableCorsAttribute( “”, “”, “*”));

    对于这两个站点,web.config文件都是骨骼库存MVC 5.2.2。完成system.webserver部分中的删除等操作。

    本地主机上的Internet Explorer没有问题,因为它不会发出OPTIONS请求,因此没有问题。如果这是发布到分隔生产领域的话。 (我们试过这个)

另一方面,Chrome无法回复OPTIONS请求中的405错误。 Chrome浏览器正在发送和接收的内容如下:

Remote Address:[::1]:47806 
Request URL:http://localhost:47806/Contacts/ValidateLogin 
Request Method:OPTIONS 
Status Code:405 Method Not Allowed 
Request Headersview parsed 
OPTIONS /Contacts/ValidateLogin HTTP/1.1 
Host: localhost:47806 
Connection: keep-alive 
Pragma: no-cache 
Cache-Control: no-cache 
Access-Control-Request-Method: POST 
Origin: http://localhost:32287 
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36 
Access-Control-Request-Headers: accept, content-type 
Accept: */* 
DNT: 1 
Referer: http://localhost:32287/XXXXX 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Response Headersview source 
Allow:POST 
Cache-Control:no-cache 
Content-Length:76 
Content-Type:application/json; charset=utf-8 
Date:Tue, 02 Sep 2014 20:59:36 GMT 
Expires:-1 
Pragma:no-cache 
Server:Microsoft-IIS/8.0 
X-AspNet-Version:4.0.30319 
X-Powered-By:ASP.NET 
X-SourceFiles:=?UTF-8?B?RDpcTGluY29sbiBQZWFrXFBNTlxEbnNcTHBwLk5ldHdvcmsuQXBpXENvbnRhY3RzXFZhbGlkYXRlTG9naW4=?= 

另外,本地不会发生这种情况。 Chrome只是在没有OPTIONS的情况下通过它。

任何想法,为什么我得到这个错误,它不只是通过?

谢谢!

回答

0

开始尝试用铬--disable-web-security

Ubuntu的 google-chrome --disable-web-security 或者 chrome.exe --disable-web-security ,然后再次尝试