如何从HTTPS网站发出HTTP请求?

时间:2018-11-08 15:48:24

标签: javascript http https aws-lambda

我有一个使用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();

2 个答案:

答案 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