我对这些协议感到困惑。在使用这些协议的情况下可以使用哪些请求:
我在HTTPS中有一个域,在HTTP中有一个子域。我可以从 HTTPS 请求HTTP(POST和GET)来检索数据吗?
例如:
$.getJSON('http://api.domainName.com/api/Visitor/GetStates/' + countryId, function(data) {
$.each(data, function(key, value) {
$("#StateId").html($("#StateId").html() +
"<option value='" +
value.StateId +
"'>" +
value.StateName +
"</option>"
);
});
}
此请求来自:https://domainName.com/
我在子域中解决了CORS问题。
答案 0 :(得分:1)
您还需要将Ajax请求切换为https。
答案 1 :(得分:1)
好吧,如果原始html页面位于https中,而请求资源位于http中,那么浏览器将无法阻止任何资源(脚本,链接,iframe,XMLHttpRequest,fetch)进行下载。
浏览器抛出混合内容错误。
Mozilla MDN的代码段
混合的活动内容是有权访问HTTPS页面的全部或部分文档对象模型的内容。这种类型的混合内容可能会更改HTTPS页面的行为,并可能从用户那里窃取敏感数据。因此,除了上面描述的混合显示内容存在的风险外,混合有效内容还容易受到其他一些攻击媒介的攻击。</ p>
在混合活动内容的情况下,中间人攻击者可以拦截对HTTP内容的请求。攻击者还可以重写响应以包含恶意JavaScript代码。恶意活动内容可以窃取用户的凭据,获取有关用户的敏感数据,或尝试在用户的系统上安装恶意软件(例如,利用浏览器或其插件中的漏洞)。
涉及混合内容的风险确实取决于用户所访问的网站类型以及该网站公开的数据可能有多敏感。该网页可能具有对世界可见的公共数据或仅在经过验证时才可见的私人数据。如果该网页是公开的,并且没有有关用户的敏感数据,则使用混合的活动内容仍然为攻击者提供了将用户重定向到其他HTTP页面并从这些站点窃取HTTP cookie的机会。
有用的文档链接
MDN-https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
Google开发人员-https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content
答案 2 :(得分:0)
http://api.domainName.com/api/Visitor/GetStates/接口添加标题“Access-Control-Allow-Origin:*”