vue+Java后端进行调试时解决跨域问题的方式


Posted in Javascript onOctober 19, 2017

      今天在开发过程中遇到一个问题,拿到了一套vue代码,计划对这套代码的部分样式进行调整,Java后端代码已经写好并且部署到了线上。这时命令行运行vue项目时访问会受限,取不下数据来,遇到了跨域访问失败的问题,这时可以怎么做呢?

首先,要了解什么叫跨域访问?

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

所谓同源是指,域名,协议,端口均相同,举个例子:

http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)

http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)

http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)

请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

知道了跨域的概念之后我们如何解决他呢?

我这里的情况是这样的,后端在服务器上,但是vue在本地运行,网上有很多的跨域代理工具,但是都比较麻烦。因为vue-cli 脚手架工具已经帮我们做了处理,只需要稍微配置一下,就可以轻松解决跨域问题。

我们打开 config/index.js 文件,找到以下代码:

vue+Java后端进行调试时解决跨域问题的方式

在proxyTable: {}配置代理,配置信息如下:

proxyTable: { 
 '/project_dzff/': { 
 target: 'http://120.92.45.71/', //域名 
 secure: false, 
 changeOrigin: false, 
 } 
 },

代理配置之后,再去修改项目的调用接口地址的信息,让他调用我们配置好的东西。

serverRoot: env === 'development' ? '/project_dzff' : 
env === 'production' ? '/project_dzff' : 
'https://debug.url.com'

这里由原先访问http://120.92.45.71/调整为访问project_deff,即我们自己定义的名字了。

这时我们运行vue项目,如图:

vue+Java后端进行调试时解决跨域问题的方式

这时基本上访问已经成功代理到本地了,这时就可以使用本地的vue项目访问服务器端的数据了!

总结

Javascript 相关文章推荐
JavaScript入门教程(7) History历史对象
Jan 31 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
Sep 29 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
JavaScript实现简单的数字倒计时
May 15 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
利用babel将es6语法转es5的简单示例
Dec 01 Javascript
ES6 Set结构的应用实例分析
Jun 26 Javascript
小程序实现悬浮搜索框
Jul 12 Javascript
AngularJS的$location使用方法详解
Oct 19 #Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 #Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
Oct 19 #Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 #jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 #jQuery
浅谈Node Inspector 代理实现
Oct 19 #Javascript
AngularJS表单验证功能
Oct 19 #Javascript
You might like
Php获取金书网的书名的实现代码
2010/06/11 PHP
php 猴子摘桃的算法
2017/06/20 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
深入理解python对json的操作总结
2017/01/05 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
机器学习python实战之决策树
2017/11/01 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
python实现决策树分类(2)
2018/08/30 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Django 批量插入数据的实现方法
2020/01/12 Python
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
linux比较文件内容的命令是什么
2013/03/04 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
勤俭节约主题班会
2015/08/13 职场文书
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python