vue项目中跨域问题的处理

在数据请求当中,由于不同源造成的跨域问题【跨域问题后面再整理写一篇】

比如我要获取拉钩网的数据,这时候就会出现跨域问题

在vue项目中处理跨域问题的配置文件是vue.config.js

可以按照这个文档来配置就行
在这里插入图片描述
主要用到是里面的devServer.proxy

比如我想获取拉钩网(https://m.lagou.com/listmore.json)这个数据,然后这里写下跨域问题的处理

// 这里写处理跨域问题

module.exports = {
    // module.exports是common.js的模块化,node中用
    devServer: {
        
      proxy: {
        //   第一个数据源
          // https://m.lagou./com/listmore.json
        '/listmore': {
          target: 'https://m.lagou./com',
        //   ws: true,这个不用
        // 在com之前都是域名,取域名后第一个字段
          changeOrigin: true
        },
        // 第二个数据源
        // https://sentry.music.163.com/wapm/api/sdk/collect
        '/wapm': {
          target: 'https://sentry.music.163.com',
          changeOrigin: true
        }
      }
    }
  }

然后在mouted钩子函数中的axios中写

//! 没有跨域的情况下是写=> axios.post('https://sentry.music.163.com/wapm/api/sdk/collect'

axios.post('/wapm/api/sdk/collect', {
//这里写的是域名后面的那串
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

如第二个的post请求中的axios中的数据写在浏览器这里的这块
在这里插入图片描述
以第二个数据源为例,这个跨域请求的意思大概就是:
在本地的http://localhost:3000中的页面里:

axios说:“我要向https://sentry.music.163.com/wapm/api/sdk/collect 发起请求!!
我写个
axios.post(‘https://sentry.music.163.com/wapm/api/sdk/collect’”

浏览器说:“哦哟,不行,你们都不同源,不能让你随便访问别人的数据!”

axios:“那我写个反向代理!”

vue.config.js中的devServer.proxy说:“在我这里写,我负责当个中间人转接下你们的消息,
‘/wapm’: {
target: ‘https://sentry.music.163.com’,
changeOrigin: true
}”

'/wapm’表示在数据请求中,遇到 /wapm 开头的数据请求时,浏览器原本的http://localhost:3000变成https://sentry.music.163.com,这样数据请求时就同源了,这时候这个反向代理就相当于一个代理人去帮这个主机谈事情一样!!!"

axios:“那我将数据请求源写成/wapm开头那后面一段,然后反向代理一找到我这里就知道我要去哪个源拿数据啦!!!”

然后就这么和谐地解决了问题!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值