在vue项目中,使用axios跨域处理


Posted in Javascript onMarch 07, 2018

跨域,一个很是让人尴尬的问题,有些人可以在后台中设置请求头,但是很多前端并不具备后台的知识,并无法自己独立的搭建一个服务器,所以就变成了一个尴尬的事情

当然,有很多的虚拟服务器,能够解决跨域问题,他们的实质都是通过后台取与后台沟通,从而委婉的解决跨域问题正好,webpack正有这种功能,所以vue-cli也是有解决跨域的能力

当然,不可能我们直接发送ajax就成功,对吧,我们肯定要修改配置文件

在vue项目中,使用axios跨域处理

代码:

dev: {
		env: require('./dev.env'),
		port: 8080,
		autoOpenBrowser: false,
		assetsSubDirectory: 'static',
		assetsPublicPath: '/',
		proxyTable: {
			'/gp': {
				target: 'http://we7.qw1000.cn/',
				changeOrigin: true,
				pathRewrite: {
					'^/gp': '/'
				}
			}
		}
	}

这是一个通用模板,主要涉及到几个概念:

dev,自然是虚拟服务器的意思,

autoOpenBrowser

也不是多重要的属性,只是配置能不能自动打开浏览器,关键点在于

proxyTable: { 
  '/gp': { 
  target: 'http://we7.qw1000.cn/', 
  changeOrigin: true, 
  pathRewrite: { 
   '^/gp': '/' 
  } 
  }

配置了我们的对象服务器,让我们的虚拟服务去访问那个网站,当然,这也是webpack的功能,所以也是只能在开发环境下使用

接下里就是我们的ajax代码了。以post为例:

在vue项目中,使用axios跨域处理

methods: {
			hello: function(e) {
				var str;
				console.log(e.target.files[0]);
				var _this = this;
				var that = new FormData();
				that.append("myfile", e.target.files[0]);
				this.$http.post('gp/app/index.php?i=2&c=entry&do=tool/image&m=qw_deal', that)
					.then(function(sures) { console.log(sures);
						console.log("上产成功") })
					.catch(function(catchres) { console.log(catchres);
						console.log("上传失败") })
			}
		},

this.$http是什么鬼???

这自然是我们在main.js中引入了axios的结果,只不过我们不能直接使用use方法,因为他并不是vue的插件,所以需要将其加载到原型链中

import axios from 'axios';
Vue.prototype.$http = axios;

这样我们就可以直接使用了,

在vue项目中,使用axios跨域处理

这是我朋友那边的链接,而且我选择的是一个上传的图像文件的链接

注意点:

1.webpack的跨域解决方法只是是适合在开发环境中使用,

2.设置inde.js内部的dev时,请注意,需要设置的应该是域名,过多会失效,所以应该是www。baidu。com

3.使用axios上传文件,不需要像ajax上传图片一样使用formdata

以上这篇在vue项目中,使用axios跨域处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript DOM 添加事件
Feb 14 Javascript
jquery-easyui关闭tab自动切换到前一个tab
Jul 29 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 Javascript
如何用JS判断两个数字的大小
Jul 21 Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 #Javascript
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 #Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 #Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
Mar 07 #Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 #Javascript
解决iview打包时UglifyJs报错的问题
Mar 07 #Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 #Javascript
You might like
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
php加密解密实用类分享
2014/01/07 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
js排序与重组的实例讲解
2017/08/28 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
Python函数中的可变长参数详解
2019/09/12 Python
python MD5加密的示例
2020/10/19 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
string = null 和string = ''的区别
2013/04/28 面试题
车队司机自我鉴定
2014/03/02 职场文书
安全协议书范本
2014/04/21 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
关于学习的演讲稿
2014/05/10 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
金砖之国观后感
2015/06/11 职场文书
体育部部长竞选稿
2015/11/21 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL