首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过javascript从http页面调用同一站点的https url时出现"Access-Control-Allow-Origin“问题

问通过javascript从http页面调用同一站点的https url时出现"Access-Control-Allow-Origin“问题
EN

Stack Overflow用户
提问于 2016-05-16 16:40:48
回答 2查看 155关注 0票数 0

通过javascript从具有http的同一网站的页面调用同一网站的https url时,获取"Access-Control-Allow-Origin“错误。

站点根url在.cshtml文件中设置为使用绝对路径。当页面被缓存并再次打开时,站点url显示为http,而根url保持https,因为它已缓存,并导致此"Access-Control-Allow-Origin“错误。

我可以通过在操作方法上将"Access-Control-Allow-Origin“设置为"*”来修复此问题。

但这意味着它将允许所有的域,我想只允许我的应用程序或域。

我如何以编程方式设置它,这样它才能在所有环境中工作?

有没有其他更好的方法来设置使用绝对路径的站点根url?

EN

回答 2

Stack Overflow用户

发布于 2016-05-16 17:13:48

您正在寻找的是CORS (跨域资源共享、http://enable-cors.org/、https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)

您不必在该标头上使用通配符,您可以只设置特定的域,甚至可以根据需要限制HTTP方法。

代码语言:javascript
复制
Access-Control-Allow-Origin: http://domain1.com

# if you want to, you can limit the methods too
Access-Control-Allow-Methods: GET, POST

一般来说,只在需要的时候打开系统,并尽量保持配置的“严密性”。

票数 1
EN

Stack Overflow用户

发布于 2016-05-16 17:11:07

您可以缓存测试协议的条件,然后动态更改URL。

例如:

代码语言:javascript
复制
if (location.protocol == "https:") {
    url = "https://....";
} else {
    url = "http://....";
}

// your AJAX call goes here

有关位置协议here的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37249844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档