通过HTTPS的CORS选项请求失败

通过HTTPS的CORS选项请求失败,cors,Cors,我已经编写了一个WebAPI控制器,使用CORS通过跨域AJAX调用以GET的形式请求数据。在我的本地环境中,通过HTTP,一切都按预期工作。当我将代码升级到我们的预生产环境(通过HTTPS)时,选项请求失败,原因如下: 请求的资源上不存在“Access Control Allow Origin”标头 在进行研究时,我发现在请求过程中出现错误时,将显示访问控制允许原始错误。不管错误是什么。这是对安全性的要求,所以我找不到实际的错误是什么 正如我前面所说的,所有东西都可以在HTTP上完美地工作,但

我已经编写了一个WebAPI控制器,使用CORS通过跨域AJAX调用以GET的形式请求数据。在我的本地环境中,通过HTTP,一切都按预期工作。当我将代码升级到我们的预生产环境(通过HTTPS)时,选项请求失败,原因如下: 请求的资源上不存在“Access Control Allow Origin”标头

在进行研究时,我发现在请求过程中出现错误时,将显示访问控制允许原始错误。不管错误是什么。这是对安全性的要求,所以我找不到实际的错误是什么

正如我前面所说的,所有东西都可以在HTTP上完美地工作,但在HTTPS上却失败了。我已经在WebAPI控制器上设置了日志记录,当跨域通过HTTPS请求时,选项方法甚至没有被命中

以下是我的WebAPI控制器中的选项方法:

[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协议中一定有某种东西以某种形式终止了请求。非常感谢您的帮助。

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

浏览并查看是否会弹出以下窗口:

如果是这样,请添加异常,现在您的浏览器将很高兴地使用您现在信任的证书调用该域