通过HTTPS的CORS选项请求失败
我已经编写了一个WebAPI控制器,使用CORS通过跨域AJAX调用以GET的形式请求数据。在我的本地环境中,通过HTTP,一切都按预期工作。当我将代码升级到我们的预生产环境(通过HTTPS)时,选项请求失败,原因如下: 请求的资源上不存在“Access Control Allow Origin”标头 在进行研究时,我发现在请求过程中出现错误时,将显示访问控制允许原始错误。不管错误是什么。这是对安全性的要求,所以我找不到实际的错误是什么 正如我前面所说的,所有东西都可以在HTTP上完美地工作,但在HTTPS上却失败了。我已经在WebAPI控制器上设置了日志记录,当跨域通过HTTPS请求时,选项方法甚至没有被命中 以下是我的WebAPI控制器中的选项方法:通过HTTPS的CORS选项请求失败,cors,Cors,我已经编写了一个WebAPI控制器,使用CORS通过跨域AJAX调用以GET的形式请求数据。在我的本地环境中,通过HTTP,一切都按预期工作。当我将代码升级到我们的预生产环境(通过HTTPS)时,选项请求失败,原因如下: 请求的资源上不存在“Access Control Allow Origin”标头 在进行研究时,我发现在请求过程中出现错误时,将显示访问控制允许原始错误。不管错误是什么。这是对安全性的要求,所以我找不到实际的错误是什么 正如我前面所说的,所有东西都可以在HTTP上完美地工作,但
[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错误完全相同 浏览并查看是否会弹出以下窗口: 如果是这样,请添加异常,现在您的浏览器将很高兴地使用您现在信任的证书调用该域