gpt4 book ai didi

c# - RESTful WebService CORS 预检 channel 未成功

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:46 26 4
gpt4 key购买 nike

我用 C# 创建了一个 WebService。所有 GET 方法都可以正常工作。

现在我需要提供一些 POST 方法。通过 C# 调用它时,它可以正常工作。然后我尝试用 JavaScript 编写一个小的 html 页面来调用我的方法。但是我收到一个 CORS 错误(“Preflight channel did not succeed”)。

我已经将以下部分添加到我的 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 header 添加到所有响应,但浏览器将使用 OPTIONS 请求来检查 CORS header 。这会工作如果您还为所有 API 端点实现OPTIONS 请求。

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

关于c# - RESTful WebService CORS 预检 channel 未成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41965645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com