我有一个使用HTTPS的网站,我想向HTTP端口发出GET请求。在尝试时,出现以下错误:
cannot load ${url} due to access control checks.
this page was not allowed to display insecure content from ${http-url}
我曾考虑过将请求放入AWS lambda函数并调用labmda函数,因为这将为我提供HTTPS URL?这可能吗。
即使如此,我还是想知道最简单的方法是什么,因为我对AWS不太了解,所以我必须学习它。
const url = 'http://website/fmi/xml/fmresultset.xml?-dbnames';
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function (params) {
console.log(xhttp.status);
if (xhttp.readyState ==4) {
if (xhttp.status == 200) {
console.log('====');
console.log(xhttp.responseText);
}
}
}
xhttp.open("GET", url, true);
xhttp.send();
答案 0 :(得分:1)
请勿使用Ajax调用,因为它们受浏览器限制。您可以通过php node.js,Asp.net等服务器端语言安全地使用服务器调用
答案 1 :(得分:0)
好吧,如果原始html页面位于https中,而请求资源位于http中,那么浏览器就不会阻止任何资源(脚本,链接,iframe,XMLHttpRequest,fetch)进行下载。
浏览器抛出Mixed Content
错误。
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