为了允许开发人员连接到开发服务器,我想启用CORS。在开发服务器上,我添加了以下web.config选项:
<add name="Access-Control-Allow-Origin" value="http://localhost:3000" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Credentials" value="true" />
当我点击ASMX和WSDL(例如/SomeService.asmx?WSDL
)时,我看到了标题。但是,当我的开发合作伙伴使用的客户端库访问该服务时,它会立即对目标方法执行OPTIONS
请求:
OPTIONS /SomeService.asmx/GetAll HTTP/1.1
etc.
同样,存在适当的CORS标头,但服务器提供500状态代码,并且不会发生后续的真实请求。如果使用GET
谓词代替OPTIONS
请求,则会出现同样的错误。
我可能需要在我的soap服务中处理非POST
个请求(特别是OPTIONS
)。但是,我甚至不确定从哪里开始。我已经尝试将其添加到网络配置中:
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>
这允许GET
请求通过;但它们的处理方式似乎已经完整POST
,OPTIONS
仍然失败。
在传统的asp.net(.net 3.5)ASMX / SOAP服务中,是否有一种处理自定义和/或OPTIONS
动词的简单方法?或者,是否更快如何让客户端开发人员访问开发服务器的服务?