2014-03-05 2 views
0

Chrome (최신 버전)으로 크로스 도메인 요청을 수행하려고 시도하고 POST에 대한 웹 API 작업이 먼저 OPTIONS 동사를 사용하여 크롬에 의해 협상 중입니다. jQuery 2.1을 사용하여 $.support.cors =true과 ajax 요청 속성 crossDomain: true을 설정했습니다. 내 Web.config의에서 내가 설정 한 : Asp.Net 웹 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 패키지를 설치하고 WebApiConfig.Register 방법 내부 config.EnableCors()를 호출했다.

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

관련 문제