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 相关文章推荐
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
jQuery实现的立体文字渐变效果
May 17 Javascript
在javascript中关于节点内容加强
Apr 11 Javascript
Javascript封装DOMContentLoaded事件实例
Jun 12 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
May 17 Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
Apr 09 Javascript
JQuery常见节点操作实例分析
May 15 jQuery
layui数据表格重载实现往后台传参
Nov 15 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
Jul 17 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
我的论坛源代码(二)
2006/10/09 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
Smarty保留变量用法分析
2016/05/23 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
python多进程并行代码实例
2019/09/30 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
致全体运动员广播稿
2014/02/01 职场文书
领导工作表现评语
2015/01/04 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python
如何基于python实现单目三维重建详解
2022/06/25 Python