【前端】Window.open打不开网页

📖 背景

        项目部署到生产环境以后,当我需要打开后端返回的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博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
前端中,使用`window.open`方法可以打开一个新的浏览器窗口或者标签页。然而,`window.open`方法本身并不提供直接设置请求头的功能。请求头是在发送HTTP请求时由浏览器自动添加的。 如果你想在新打开的窗口或标签页中发送带有特定请求头的请求,可以考虑使用`XMLHttpRequest`对象或者`fetch`函数来发送请求。这两种方式都允许你自定义请求头。 下面是一个使用`XMLHttpRequest`对象发送带有请求头的GET请求的示例代码: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://example.com', true); xhr.setRequestHeader('Custom-Header', 'header-value'); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 请求成功处理逻辑 } }; xhr.send(); ``` 在上面的代码中,我们通过`setRequestHeader`方法设置了一个名为"Custom-Header"的自定义请求头,并将其值设置为"header-value"。你可以根据自己的需求添加更多的请求头。 使用`fetch`函数发送带有请求头的GET请求的示例代码如下: ```javascript fetch('http://example.com', { headers: { 'Custom-Header': 'header-value' } }) .then(function(response) { if (response.ok) { // 请求成功处理逻辑 } }) .catch(function(error) { // 请求失败处理逻辑 }); ``` 在上面的代码中,我们通过`headers`选项设置了一个名为"Custom-Header"的自定义请求头,并将其值设置为"header-value"。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值