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和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
EXT窗口Window及对话框MessageBox
Jan 27 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
js制作支付倒计时页面
Oct 21 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
npm 下载指定版本的组件方法
May 17 Javascript
node全局变量__dirname与__filename的区别
Jan 14 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 Javascript
vue接口请求加密实例
Aug 11 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
菜鸟学PHP之Smarty入门
2007/01/04 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
php防止sql注入代码实例
2013/12/18 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
js获得网页背景色和字体色的方法
2014/03/21 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
js动态切换图片的方法
2015/01/20 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
jQuery中$原理实例分析
2018/08/13 jQuery
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
Python的面向对象思想分析
2015/01/14 Python
Python中的with...as用法介绍
2015/05/28 Python
教你学会使用Python正则表达式
2017/09/07 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
编程实现去掉XML的重复结点
2014/05/28 面试题
管理岗位竞聘演讲稿
2014/08/18 职场文书
mysql优化
2021/04/06 MySQL
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS