gpt4 book ai didi

通过 HTTPS 的 CORS OPTIONS 请求失败

转载 作者:行者123 更新时间:2023-12-04 17:12:54 26 4
gpt4 key购买 nike

我编写了一个 WebAPI Controller ,我正在使用 CORS 通过跨域 AJAX 调用以 GET 形式请求数据。在我的本地环境中,通过 HTTP,一切都按预期进行。当我将代码提升到通过 HTTPS 的预生产环境时,OPTIONS 请求失败并显示以下内容:请求的资源上不存在“Access-Control-Allow-Origin” header

在研究中,我发现在请求过程中出现错误时,会显示 Access-Control-Allow-Origin 错误。不管错误是什么。这是为了安全,所以我找不到实际的错误是什么。

正如我之前所说,一切都可以在 HTTP 上完美运行,但在 HTTPS 上会失败。我已经在 WebAPI Controller 上设置了日志记录,当从跨域通过 HTTPS 请求时,OPTIONS 方法甚至没有被命中。

下面是我的 WebAPI Controller 中的一个 OPTIONS 方法:

[AcceptVerbs("OPTIONS")]
public HttpResponseMessage Options()
{
var resp = new HttpResponseMessage(HttpStatusCode.OK);
resp.Headers.Add("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Accept");
resp.Headers.Add("Access-Control-Allow-Origin", ConfigurationManager.AppSettings["MSOContent"]);
resp.Headers.Add("Access-Control-Allow-Credentials", "true");

return resp;
}

HTTPS 协议(protocol)中一定有某种东西以某种形式杀死了请求。任何帮助将不胜感激。

最佳答案

如果它通过 HTTP 工作,那么问题很可能是您的浏览器正在处理不受信任并且尚未被接受的 SSL 证书。此问题的控制台错误消息看起来与“来源”CORS 错误完全相同。

浏览到 https://youdomain并查看是否弹出以下内容:

Untrusted

如果是这样,请添加异常(exception),现在您的浏览器将很乐意使用您现在信任的证书对该域进行调用。

关于通过 HTTPS 的 CORS OPTIONS 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319917/

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