gpt4 book ai didi

c# - 为 Web API 1、.net 4.0 启用 CORS

转载 作者:太空狗 更新时间:2023-10-29 18:08:14 25 4
gpt4 key购买 nike

我需要为我的 Web API 启用 CORS,目前我无法升级到 Framework 4.5。 (我知道 System.Web.Http.Cors.EnableCorsAttribute。)

我尝试将以下内容添加到我的 Web.config 中以查看它是否有效,但没有成功:

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
</httpProtocol>

我还尝试使用 System.Web.Http.Filters.ActionFilterAttribute(基于这篇文章:Add custom header to all responses in Web API)手动将 Access-Control-Allow-Origin header 设置为“*” - 但那没有' 在进入操作过滤之前,请求被拒绝,这两种情况都可以解决。

所以我现在有点卡住了。感谢任何帮助。

编辑:结果

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

一直是答案,我之前测试的时候一定是做错了什么。但是这个解决方案意味着所有操作都启用了 CORS(现在可以)。

最佳答案

POST、PUT、DELETE 等使用预先执行的 CORS。浏览器发送一个 OPTIONS 请求。这是因为浏览器首先使用 OPTIONS 请求检查服务器端是否可以处理 CORS,如果成功,则发送实际请求 PUTPOST删除。由于您没有处理 OPTIONS 的操作方法,您将收到 405。在最简单的形式中,您必须在 Controller 中实现这样的操作方法。

更多解释 - http://www.w3.org/TR/cors/#resource-preflight-requests

http://www.html5rocks.com/en/tutorials/cors/

public HttpResponseMessage Options()
{
var response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
return response;
}

注意:此操作仅响应OPTION 请求,因此您还需要将必要的配置添加到web.config,例如Access- Control-Allow-Origin = *Access-Control-Allow-Methods = POST,PUT,DELETE

Web API 2 支持 CORS,但对于 Web API 1,您必须遵循此路径。

关于c# - 为 Web API 1、.net 4.0 启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26506300/

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