[英]Javascript HTTPS GET Restriction
我制作了一个脚本,希望用户将其插入到其网址栏中。 该脚本如下。
javascript:x=new XMLHttpRequest();x.open("GET", "http://example.com/page.php?param1=value1¶m2=value2", true); x.send()
唯一的问题是,我希望用户将其放入其网址栏的站点是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¶m2=value2';. This request has been blocked; the content must be served over HTTPS.
Example.net是第三方网站,example.com是我的网站。
无论如何,有没有办法解决这个错误? 我整天都在搜寻,但没有成功。 谢谢。
脚本失败的原因是AJAX请求将在当前页面的上下文中运行。 即使您通过HTTPS提供内容,您可能遇到的下一个问题是CORS错误。
使用以下代码可能是最安全的选择,但它会重定向。
window.location = "http://example.com/page.php?param1=value1¶m2=value2";
这样的事情也可以,但是可能会被弹出窗口阻止程序阻止:
var x = window.open("http://example.com/page.php?param1=value1¶m2=value2");
然后,如果您想稍后将其关闭,则可以执行以下操作
document.setTimeout(function(){
x.close();
}, 4000);
如果所有这些解决方案都不适合,我可以想到的唯一其他选择是浏览器插件,因为它可以让您在浏览器的上下文中执行JS。
您可以代理请求:js在后端调用https://example.com/page.php和page.php,而在http://example.net/ ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.