2013-07-19 2 views
2

이제 별도의 도메인에서 POST하려고하는 NancyFX를 사용하여 RESTful 웹 서비스를 빌드했습니다. 물론 그렇게 할 때 크로스 사이트 POST이기 때문에 콘솔에 실패한 OPTIONS 메시지가 표시되며 Nancy가 브라우저에서 보내는 OPTIONS 메시지에 올바르게 응답하는지 확인해야합니다. 그러나 낸시 모듈에서 경로를 정의하면 다음과 같습니다.NancyFX/Visual Studio 웹 서버에서 옵션 응답을 무시하십시오.

this.Options["/options/"] = _ => this.OptionsRequest(); 

private dynamic OptionsRequest() 
{ 
     return this.Response.AsJson(Request) 
       .WithHeader("Access-Control-Allow-Origin", "*") 
       .WithHeader("Access-Control-Allow-Methods", "POST") 
       .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"); 
} 

코드에 절대 도달하지 않습니다. 디버거의 OptionsRequest() 메서드에 중단 점을 설정하고 코드가 절대 적중되지 않는지 확인할 수 있습니다. 그러나 우편 배달부에서 OPTIONS 요청을 발행 할 수 있으며 서버는 응답을 반환합니다 (흥미롭게도, 내가 정의한/options/route뿐만 아니라 모든 URI에서 응답을 반환하는 것처럼 보입니다).

OPTIONS에 대한 경로를 지정하기 위해 대체해야하는 기본 Nancy OPTIONS 동작이 있습니까? 아니면 Visual Studio Development Web Server (Casini)에서 호스팅되는 서비스와 관련이 있습니까? 나는 내가 생각할 수있는 모든 것을 시도해 보았고 나는 왜이 특정한 동사에 대한 행동을 정의 할 수 없는지에 관해서 여전히 혼란 스럽다.

답변

3

이것은 바뀌 었습니다. Nancy v0.17.1의 버그입니다 (https://github.com/NancyFx/Nancy/pull/1093 참조). 0.18.0으로 업그레이드하면 문제가 해결되고 OPTIONS 경로가 올바르게 작동합니다.

관련 문제