【发布时间】:2017-06-12 23:35:55
【问题描述】:
在预检请求中,我应该使用哪些代码来处理授权错误?
我的意思是,我可以有 2 个不同的未经授权的错误:
- 用户无法运行预检(OPTIONS 方法已处理 - 所以我认为我不应该使用 405 - 但用户无权请求 OPTIONS)
- 用户无权调用请求的方法(由 Access-Control-Request-Method 指定)
【问题讨论】:
在预检请求中,我应该使用哪些代码来处理授权错误?
我的意思是,我可以有 2 个不同的未经授权的错误:
【问题讨论】:
当我试图在我的 Web 服务上运行 CORS 时,我有一个类似的设置,显示 405 错误和 500 错误。如果 Request 是飞行前的 OPTIONS 方法,我的修复基本上需要一个 response.End() 调用。 CORS 文档中的 web.config Web 处理程序很好,只要 OPTIONS 包含在允许的调用列表中。我不需要将任何客户处理程序移动到代码中。
基本上,我的修复/设置在我的 ApplicationOnBeginRequest 处理程序中包含一个主要修复:
private void ApplicationOnBeginRequest( object sender, EventArgs eventArgs )
{
...
if ( context.Request.HttpMethod == "OPTIONS" )
response.End();
}
以及我的 web.config 中的这些处理程序:
<system.webServer>
<!--Other handlers/modules ...-->
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Access-Control-Allow-Headers" value="Content-Type,Accept" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
【讨论】: