背景

项目部署到生产环境以后,当我需要打开后端返回的url时,却发现打不开了,看了一下URL的开头,原来是http。由于线上是HTTPS的页面,所以加上s就可以正常打开了,但是这是为什么呢?

⭐️ 解答

这是由于现代浏览器的安全策略造成的。

许多现代浏览器都实施了一个策略,即从HTTPS页面禁止打开不安全的HTTP页面。这是因为HTTPS是安全的,而HTTP是不安全的,所以从HTTPS页面打开HTTP页面可能会导致安全问题。

例如,如果你的网站是HTTPS,并且你试图使用window.open()打开一个HTTP链接,这可能会被浏览器阻止,因为这被视为一个安全风险。

如果你能控制你试图打开的链接,你可以尝试将其升级到HTTPS,这样就可以从HTTPS页面安全地打开它了。如果你不能控制这个链接,你可能需要考虑其他的解决方案,比如在用户点击链接时显示一个警告,告诉他们他们将要离开一个安全的网站并进入一个不安全的网站。

所以这也是为什么很多网站在你点击链接要跳转到其他页面时,会产生一个中间页面,并对你进行提醒的缘故了,就是为了能够让你的跳转行为产生在用户事件里。

️ 延伸

直接打开网址没问题,通过超链接或window.open打开报错:The HTTP request is not acceptable for the requested resou-CSDN博客

window.open 打开新页面失效_window.open不打开新页面-CSDN博客