❤️vue访问外部链接会拼接默认路径的问题

小明的学习圈子2023-11-01后端vue 问题整理

背景

vue单页应用项目直接使用a标签跳转到外部链接报错

问题分析

a标记触发的跳转默认被router处理,加上了前缀,见如下代码:

<--a标签-->
    <a
      href="'https://www.baidu.com/'"
      target="_blank">
      a标签跳转到外部链接测试
    </a>
// 跳转后浏览器地址栏结果
http://localhost:8080/'https://www.baidu.com/'   

解决方法

使用浏览器BOM操作(window.location.href)解决这个问题,实现直接跳转到外部链接,相关代码如下:

    <div @click="toRescue">
      window.location.href跳转到外部链接测试
    </div>
    ......
    data() {
      return {
        url: 'https://www.baidu.com/',
      };
    },
    methods: {
      toRescue() {
        window.location.href = this.url;
      },
    }, 
// 跳转后浏览器地址栏结果
https://www.baidu.com/

另一种方式

用原生 js 解决发现路径前拼接上了默认路径,实际跳转的路径为 localhost:8080/www.baidu.com 与预期不符合。

'http://' + url

要在路径前面加上 http://

(前面拼接上一个http 这个很关键,后端返回的路径没有加协议,否则无法访问,提示私密链接之类的)

Last Updated 2024/4/6 10:47:15