CORS (Cross Origin Resource Sharing)와 관련된 것으로 보이는 ASP.Net WEB API 2.0 문제로 고심하고 있습니다. 내 웹 API에서 ASP.Net WEB API 2.0 - CORS
는 services.xyz 사이트는 난의 system.webServer 아래의 web.config에 다음 기기 구성을 한 다음를<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://xyz.web" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
그리고 내 ASP.Net 웹 사이트 xyz.web에서
사용되는 WEB API에서 GET 메서드를 호출 할 때 아무런 문제가 없습니다.$http({ method: 'GET', url: 'http://services.xyz.dk/api/WarningSentences/GetWarningSentencesById?warningSentenceId=' + value })
.success(function (data) {
deferred.resolve(data);
})
하지만 최대한 빨리 services.xyz에 xyz.web에서 POST를 수행하려고로, 파이어 폭스 내가 허용되지 않습니다 크로스 기원 API 호출을 할 노력하고있어 하더군요. Chrome 브라우저는 나에게 http 상태 405 (허용되지 않음)를 제공합니다.
$http({
method: 'POST',
url: 'http://services.xyz.dk/api/WarningSentences/Update',
data: value,
dataType: 'json',
headers: {"Content-Type": "application/json"}
})
CORS 구성을 services.xyz에서 제거하면 모든 것이 명확 해집니다. 따라서 CORS 구성을 사용하여 GET API 호출을 수행 할 수 있지만 POST API 호출은 수행 할 수없는 것 같습니다.
왜?
'HTTP 405'의 응답은 메소드 (여기서는'POST')가 자원에서 사용될 수 없다는 것을 클라이언트에게 알리는 웹 서버입니다. 'POST' 요청을 허용하도록 서버 측 기능을 설정 했습니까? – jonafato