vue使用代理解决请求跨域问题详解


Posted in Javascript onJuly 24, 2019

在日常开发中,我们前端必不可少的需要像后端请求数据。

但是一般前后端分离,所以域名、端口等肯定不尽相同,这样就不可避免的会遇到浏览器的同源策略限制。

在一般情况下,后端都会设置请求跨域允许的来源、方法等。

但是也保不准后端疏忽而忘记这个问题。

那为了不影响我们的开发,前端只能被动的去找后端解决跨域问题。

其实,我们前端也可以解决跨域问题,那就是使用代理。

举个例子:

我请求的地址是这个:http://192.168.12.36:9000/api/SourceManager

但是我本地的vue项目的端口号是8080,这里就涉及到了端口号不一致导致的同源策略问题(别想着改成同端口,会冲突)、

那么我发起请求就会跨域而被浏览器拦截,那么我们来看看解决办法:

在vue的config文件夹中有个index.js文件:

在proxyTable中配置代理(名字可以随便起,我用的是web)

proxyTable: {
  '/web': {
    //设置你调用的接口域名和端口号 别忘了加http
    target: 'http://192.168.12.36:9000/api/SourceManage',
    changeOrigin: true,
    pathRewrite: {
      '^/web': ''
      //这里理解成用‘/web'代替target里面的地址,后面组件中我们掉接口时直接用web代替 比如我要调用'http://192.168.12.36:9000/api/SourceManage/user/add',直接写‘/web/user/add'即可
    }
  }
}

因为我是把公共的请求地址抽离出来的,所以大家可以参考以下部分:

获取数据:http://192.168.12.36:9000/api/SourceManager/GetAll

增加数据:http://192.168.12.36:9000/api/SourceManager/AddSource

修改数据:http://192.168.12.36:9000/api/SourceManager/UpdateSource

删除数据:http://192.168.12.36:9000/api/SourceManager/DeleteSource

理论上代理中配置到端口号即可,但是我为了后期方便,把公共地址抽离出来,一直配置到公共的结束,所以代理中我配置的是http://192.168.12.36:9000/api/SourceManager

然后在config文件夹中的dev.env.js文件中配置生产环境(开发环境):

这边写自己的路径端口号以及前面配置的代理名:

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API_ROOT: ' "http://localhost:8080/web" '
})

然后在config文件夹中的prod.env.js文件中配置产品环境(上线环境):

这边我暂时就不写了,大家上线打包的时候写成自己的实际请求地址即可。

module.exports = {
  NODE_ENV: '"production"',
  API_ROOT: ' "" '
}

然后在main.js里改为请求配置的地址:

// 引入axios
import axios from 'axios'
 
// 使用axios
Vue.prototype.axios = axios;
 
// 配置公共请求地址
Vue.prototype.baseURL = process.env.API_ROOT;

然后在每个页面请求即可,写法参考:

因为之前一直配置的是公共地址,所以这里只写后面变化的,前面的引用设置的路径即可。

this.axios({
  method: "get",
  url:`${this.baseURL}/GetAll`, 
})
.then((response)=> {
  console.log(response)
})
.catch((error)=> {
  console.log(error);
});

设置完代理别忘了重启服务器。

好了,以上就是vue中配置代理解决跨域的问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
js导出格式化的excel 实例方法
Jul 17 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
Apr 18 Javascript
angular指令笔记ng-options的使用方法
Sep 18 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
VUE2.0中Jsonp的使用方法
May 22 Javascript
详解Eslint 配置及规则说明
Sep 10 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
Aug 16 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
vue实现同时设置多个倒计时
May 20 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
Vue父组件如何获取子组件中的变量
Jul 24 #Javascript
mock.js模拟数据实现前后端分离
Jul 24 #Javascript
vue+mock.js实现前后端分离
Jul 24 #Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 #Javascript
Vue封装的组件全局注册并引用
Jul 24 #Javascript
vue子路由跳转实现tab选项卡
Jul 24 #Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 #Javascript
You might like
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
python实现发送邮件及附件功能
2021/03/02 Python
Python实现统计代码行的方法分析
2017/07/12 Python
Python与R语言的简要对比
2017/11/14 Python
Python实现的tcp端口检测操作示例
2018/07/24 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
雅虎笔试题(字符串操作)
2015/03/24 面试题
简单英文演讲稿
2014/01/01 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
质量承诺书格式
2014/05/20 职场文书
销售活动策划方案
2014/08/26 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
导游词之临安白水涧
2019/11/05 职场文书