2016-09-19 3 views
0

이 오류와 혼동을 일으 킵니다.OWIN이있는 웹 API, 프리 플라이트 요청은 OK를 반환하지만 실제 요청은 405를 반환합니다. PUT, DELETE는 허용되지 않습니다.

사용자 인증을 위해 Web API와 OAuth를 사용하고 있습니다. 사이트에 대한 첫 번째 요청은 올바르게 실행되는 사용자 등록 POST 요청입니다. 내가 보내는 두 번째 요청은 사용자 자격 증명을 사용하여 사용자를 활성화하는 PUT 요청입니다.이 경우 프리 플라이트 요청은 OK을 반환하지만 실제 PUT 요청은 405 메서드가 허용되지 않으며 아니요, 아니요 Access-Control-Allow-Origin 헤더가 존재합니다.
호스팅 전에 모든 것이 잘 작동합니다. 이 오류는 호스팅 된 API에서만 발생합니다. 또한 호스트 클라이언트를 localhost:portNo/api (즉, 로컬 호스트에서 api를 실행하고 호스팅 된 클라이언트 응용 프로그램에서 액세스)로 확인했는데 정상적으로 작동합니다. 호스팅 된 응용 프로그램에서만 오류가 발생합니다. 가
Accept:/ Accept-Encoding:gzip, deflate, sdch Accept-Language:en-US,en;q=0.8,ta;q=0.6 Access-Control-Request-Headers:content-type, userlanguage Access-Control-Request-Method:PUT Cache-Control:no-cache Connection:keep-alive Host:api.oorvalam.com Origin: http://web.oorvalam.com Pragma:no-cache Referer:web.oorvalam.com/setPassword
실제 요청 :
Request URL:api.oorvalam.com/user/activate Request Method:PUT Status Code:405 Method Not Allowed
실제 응답은 다음과 같다 : 다음과 같이
Request URL: api.oorvalam.com/user/activate Request Method:OPTIONS Status Code:200 OK
프리 플라이트 응답은 다음과 같이

플라이트 요청은
Allow:GET, HEAD, OPTIONS, TRACE Cache-Control:private Content-Length:5293 Content-Type:text/html; charset=utf-8 Date:Mon, 19 Sep 2016 13:30:09 GMT Server:Microsoft-IIS/8.5 X-Powered-By:ASP.NET X-Powered-By-Plesk:PleskWin

FYI : 고객이 각성되어 있습니다. 또한 stackoverflow 나를 허용하지 않는 일부 링크 http를 제거했습니다.

CORS에 관해 내가 놓친 것이 있으면 알려주십시오. 그리고 왜 그것이 지역에서 일하고 Hosted API에서 일하지 않는지에 대해 자세히 설명합니다.

답변

0

많은 것을 검색 한 결과, web.config의 Configuration과 관련된 오류라는 것을 알게되었습니다.

대답은 다음과 같이 Web.config의에서
https://stackoverflow.com/a/19722942/5003227

내 최종 <web.server>은이 대답 유사하다 :이 구성을 추가 할 때까지, DELETE

<system.webServer> 
<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="WebDAVModule"/> 
</modules> 
<handlers> 
    <remove name="OPTIONSVerbHandler"/> 
    <remove name="TRACEVerbHandler"/> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
<httpErrors errorMode="Detailed"></httpErrors> 
<asp scriptErrorSentToBrowser="true"></asp> 

PUT은 허용되지 않았다.

관련 문제