RESTful WebService 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>

可悲的是,它仍然不起作用。我做错了什么?

因此,

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

更好的选择是使用 CORS 框架之一,例如:在 Web API 2 中为 ASP.NET WebAPI 2 启用 ASP.NET 跨源请求。 这种类型的框架将为您截获OPTIONS请求并提供适当的响应,而无需为每个终端节点手动创建 2 个路由。

相关内容

  • 没有找到相关文章

最新更新