Javascript HTTPS获取限制

Javascript HTTPS获取限制,javascript,https,Javascript,Https,我已经做了一个脚本,我希望用户插入到他们的Url栏。脚本如下 javascript:x=new XMLHttpRequest();x.open("GET", "http://example.com/page.php?param1=value1&param2=value2", true); x.send() 唯一的问题是,我希望用户将其放入Url栏的站点是HTTPS站点。由于某种原因,它不工作,因为这一点。这是我在Chrome控制台中遇到的错误: Mixed Content: The p

我已经做了一个脚本,我希望用户插入到他们的Url栏。脚本如下

javascript:x=new XMLHttpRequest();x.open("GET", "http://example.com/page.php?param1=value1&param2=value2", true); x.send()
唯一的问题是,我希望用户将其放入Url栏的站点是HTTPS站点。由于某种原因,它不工作,因为这一点。这是我在Chrome控制台中遇到的错误:

Mixed Content: The page at 'example.net'; was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'example.com/page.php?param1=value1&param2=value2';. This request has been blocked; the content must be served over HTTPS.
Example.net是第三方网站,Example.com是我的网站


不管怎样,有没有办法克服这个错误?我找了一整天,但没有成功。谢谢。

脚本失败的原因是AJAX请求将在当前页面的上下文中运行。您可能遇到的下一个问题是CORS错误,即使您是通过HTTPS提供内容的

使用以下选项可能是最安全的选择,但它会重定向

window.location = "http://example.com/page.php?param1=value1&param2=value2"; 
类似的东西也可以工作,但可能会被弹出窗口阻止程序阻止:

var x = window.open("http://example.com/page.php?param1=value1&param2=value2"); 
然后如果你想在一段时间后关闭它,你可以做如下的事情

document.setTimeout(function(){
    x.close();

}, 4000);

如果这些解决方案都不适用,我唯一能想到的另一个可行方案是浏览器插件,因为它允许您在浏览器上下文中执行JS。

您可以代理请求:您调用的后端中的JS调用和page.php…

通过HTTPS提供您的内容?我将如何通过Javascript?在URL中的http之后添加一个s,并配置您的服务器。如果我的页面在发布后重定向回原始页面,这是否明智?很可能-这取决于您试图实现的目标。如果使用window.location,则可能值得使用history.back而不是另一个window.location或HTTP重定向返回页面,因为这将最小化书签对部分填充的页面表单、脚本等的干扰。。我肯定会首先测试window.open方法,因为它可能是入侵性最小的——在Chrome中,至少当它是书签时,它不会触发默认的弹出窗口阻止程序。