温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • vue怎么解决axios请求前端跨域问题

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

发布时间:2021-10-25 09:06:57 来源:亿速云 阅读:1830 作者:iii 栏目: 开发技术

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

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

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

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

    二、解决方案

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

    未处理跨域前的报错

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

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

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

    跨域资源共享(CORS)

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

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

    1、vue项目的端口是8081

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

    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是对象,所以我们可以配多个代理。

    跨域解决

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

    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请求前端跨域问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

    向AI问一下细节
    推荐阅读:
    1. vue使用代理解决请求跨域问题详解
    2. vue中怎么封装axios请求

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    vue axios
    • 上一篇新闻:
      python基础中如何进行函数的定义和调用
    • 下一篇新闻:
      Python爬虫经常会被封的原因是什么

    猜你喜欢

    • 云主机如何改安全配置
    • python中groupby函数如何使用
    • python如何取出列表中的元素
    • python怎么合并两个列表
    • python导入本地文件的方法是什么
    • python怎么提取字典中的数据
    • python怎么取字典的某个值
    • PPT怎么绘制时间线展示重要的时间段
    • excel加减乘除怎么用
    • ppt怎么设计创意的格子排版效果图
    最新资讯
    • Oracle中如何传递参数给变量
    • 如何利用Oracle变量优化SQL查询
    • Oracle变量与绑定变量的区别
    • Oracle变量间如何相互引用
    • 深入理解Oracle PL/SQL变量声明
    • Oracle中变量的生命周期是怎样的
    • 如何在Oracle中动态赋值给变量
    • Oracle变量命名规范知多少
    • 变量类型对Oracle性能有何影响
    • 局部变量在Oracle中的使用技巧
    相关推荐
    • vue引入axios同源跨域问题
    • vue中axios如何解决跨域问题
    • vue axios同步请求解决方案
    • 怎么用vue封装axios请求
    • 如何用vue封装axios请求
    • vue中如何封装axios请求
    • 如何解决ajax请求前端跨域问题
    • vue如何解决axios请求出现前端跨域问题
    • vue:axios请求本地json路径错误如何解决
    • AJAX请求及跨域问题怎么解决

    相关标签

    vue.use vue组件 vue插件 vue-cli vue面试题 mpvue ant-design-vue vue2.0 vuerouter vue-element-admin vue-video-player vuepress MongoVUE vue.set vue2.5 vue2.6 vue-cli2.x vue-cli2 vue.cli vue.directive
    AI

    PHP网站源码西乡网站优化大运模板推广吉祥seo网站推广龙岗关键词排名包年推广福永关键词排名东莞百度关键词包年推广木棉湾网络推广西乡网站优化软件宝安企业网站改版松岗模板网站建设吉祥网站改版布吉网络广告推广龙岗网站排名优化塘坑网站开发盐田网站优化按天计费福永网络广告推广南联网站关键词优化南澳关键词按天计费松岗网站搜索优化南山网站推广丹竹头设计公司网站大鹏网站建设深圳SEO按效果付费惠州阿里店铺托管大浪关键词排名包年推广丹竹头至尊标王光明网站优化按天计费布吉建设网站永湖营销网站永湖seo优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化