gpt4 book ai didi

Asp.Net Cors 在 OPTIONS 上返回 header ,但在 GET 请求上不返回

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:56 26 4
gpt4 key购买 nike

在 .Net Mvc (非核心) 项目中使用 Microsoft.Owin.Cors 我在启动时像这样配置 cors:

var cors = new CorsPolicy {
AllowAnyHeader = true,
SupportsCredentials = true,
};
cors.Origins.Add("http://localhost:3006");
cors.Methods.Add("GET");
cors.Methods.Add("POST");
cors.Methods.Add("PUT");
cors.Methods.Add("DELETE");
cors.Methods.Add("OPTIONS");
app.UseCors(new CorsOptions {
PolicyProvider = new CorsPolicyProvider {
PolicyResolver = ctx => Task.FromResult(cors)
}
});

当我从 localhost:3006 上的站点执行跨源查询时,我收到一个成功的 OPTIONS 预检请求,然后是一个成功但被阻止的 GET 请求。

OPTIONS followed by a blocked GET

当我检查响应时,我看到了

access-control-allow-credentials: true
access-control-allow-headers: authorization
access-control-allow-origin: http://localhost:3006

在 OPTIONS 响应上,但不在 GET 上!

为什么不呢?我需要什么才能使其正常工作?

最佳答案

因此,在插入一整天之后,我终于让它工作了。我无法使用 Owin 处理程序让它工作。给我的提示是 OPTIONS 成功但 GET 失败。

我怀疑的是,在 .Net Framework 上,Mvc 实际上发生在 Owin 管道之外,因为它直接与 System.Web 相关联。虽然我确定有办法通过弄乱我的 web.config 来解决这个问题,但在我的情况下,我真的需要 CORS 用于我的 web api 处理的路由,因此切换到 Microsoft。 AspNet.WebApi.Cors 成功了。

关于Asp.Net Cors 在 OPTIONS 上返回 header ,但在 GET 请求上不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54798659/

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