千家信息网

vue怎么解决axios请求前端跨域问题

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"vue怎么解决axios请求前端跨域问题",在日常操作中,相信很多人在vue怎么解决axios请求前端跨域问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年11月04日vue怎么解决axios请求前端跨域问题

这篇文章主要介绍"vue怎么解决axios请求前端跨域问题",在日常操作中,相信很多人在vue怎么解决axios请求前端跨域问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"vue怎么解决axios请求前端跨域问题"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    一、为什么会出现跨域的问题?

    跨域:浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。

    在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题。跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的。而axios是通过Promise实现对ajax技术的一种封装,也同样存在跨域问题。

    二、解决方案

    这里我就使用本机的开启两个不同的端口来测试。

    未处理跨域前的报错

    没有做跨域处理请求是这样的

     axios.get('http://localhost:8080/getData') .then(res => {   console.log(res) }) .catch(err => {   console.error(err);  })

    跨域资源共享(CORS)

    前端进行反向代理来解决跨域问题。原理图如下:

    1、vue项目的端口是8081

    2、自己电脑开启了一个8080的端口,请求/getData就会放回json数据。

    3、配置代理

    1.在vue2.0中

    修改config文件夹下的index.js文件,在proxyTable中加上如下代码:

       proxyTable: {      '/apis': {        target: 'http://localhost:8080/',  //要解决跨域的接口的域名        secure:false,           //如果是https接口,需要配置这个参数        changeOrigin: true,  // 如果接口跨域,需要进行这个参数配置        pathRewrite: {          '^/apis': ''  // 路径重写        }      },    },

    然后在请求中axios中这样写

     axios.get('apis/getData') .then(res => {   console.log(res) }) .catch(err => {   console.error(err);  })

    分析:

    target后面的就是需要请求的网址的公共部分,然后用/apis来代理这个,最后重写一些路径,请求的时候使用的我们的代理的apis来作为前缀。

    这个前缀我们可以自定义,proxyTable是对象,所以我们可以配多个代理。

    跨域解决

    2.在vue3.0中

    vue-cli3 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动创建

    新建一个vue.config.js,配置以下信息,同样可以解决。

    module.exports = {       devServer: {        proxy: {            '^/api': {                target: 'http://localhost:8080/',//接口的前缀                ws:true,//代理websocked                changeOrigin:true,//虚拟的站点需要更管origin                pathRewrite:{                    '^/api':''//重写路径                }            }        }    }}

    小结:

    changeOrigin: true :开启代理:在本地会创建一个虚假服务器,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端就可以进行数据的交互。

    apis就是接口实际请求的前缀,去代理了我们的实际的接口前缀的公共部分,也就是协议+主机名+端口号

    比如 请求接口为localhost:8080/getData 我们只需要传入:getData
    那么公共的域名就是 localhost:8080/,我们就是在请求接口的公共域名localhost:8080/改为api/即可!

    把项目运行起来可以看到接口请求的路径为 :localhost:8081/apis/getData

    而进过代理后,实际的请求路径是 : localhost:8080/getData

    到此,关于"vue怎么解决axios请求前端跨域问题"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

    问题 接口 代理 域名 前端 前缀 路径 就是 数据 端口 资源 学习 配置 实际 文件 项目 服务 不同 主机 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网和科技创新 智能科技公司是互联网公司吗 互联网科技的 南京欣网互联网科技 苏州互联网科技贷款公司 苏州大垚互联网科技 卫星互联网科技股票 深圳市运趣互联网科技有限公司 广州恒生互联网科技有限 互联网科技创新服务 受益于互联网科技的高速发展 青岛科技大学互联网大赛研究生 科技互联网海报 互联网金融科技公司的优势 江苏互联网智能科技软件 互联网高科技行业有哪些企业 北京军民互联网科技公司 绵阳真晨互联网科技有限公司 科技美学互联网 艺术 高科技和互联网的现代国家 科技信息互联网 喔噻互联网科技 小马过河互联网科技 成都仁贤领冠互联网科技有限公司 北京华百购互联网科技有限公司 2021互联网科技公司排名 黑科技 体验场景 互联网大会 黑云互联网科技有限公司 中天科技中国工业互联网 陕西九四连强互联网科技有限公司
    0