我在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>
可悲的是它仍然没有用。我做错了什么?
答案 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个路由。