RESTful WebService CORS预检频道没有成功

时间:2017-01-31 19:12:00

标签: c# web-services cors

我在C#中创建了一个WebService。所有GET方法都没有任何问题。

现在我需要提供一些POST方法。通过C#调用它时没有任何问题。然后我尝试用JavaScript编写一个小的html页面来调用我的方法。但是我得到了一个CORS错误(“预检频道没有成功”)。

我已将以下部分添加到我的web.config文件中:

<customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="*" />
    <add name="Access-Control-Allow-Methods" value="*" />
</customHeaders>

可悲的是它仍然没有用。我做错了什么?

1 个答案:

答案 0 :(得分:4)

所以你在这里所拥有的并不是处理CORS请求的有效方法。问题是,这会将CORS标头添加到所有响应,但浏览器将使用OPTIONS请求来检查CORS标头。这个可以 ,如果,您还会对所有API端点实施OPTIONS个请求。

更好的选择是使用其中一个CORS框架,例如这个:Enabling Cross-Origin Requests in ASP.NET Web API 2用于ASP.NET WebAPI 2.这种类型的框架将截取OPTIONS请求并提供适当的响应,无需您为每个端点手动创建2个路由。