在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 相关文章推荐
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
Mar 29 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 Javascript
使用jquery读取html5 localstorage的值的方法
Jan 04 Javascript
javascript数组排序汇总
Jul 07 Javascript
js实现Select头像选择实时预览代码
Aug 17 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
原生js封装的一些jquery方法(详解)
Sep 20 Javascript
jQuery中 bind的用法简单介绍
Feb 13 Javascript
CentOS环境中MySQL修改root密码方法
Jan 07 Javascript
vue-router beforeEach跳转路由验证用户登录状态
Dec 26 Javascript
浅谈JS中几种轻松处理'this'指向方式
Sep 16 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
zf框架的校验器InArray使用示例
2014/03/13 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
文员个人的求职信范文
2013/09/26 职场文书
研究生自荐信
2013/10/09 职场文书
仓库班组长岗位职责
2013/12/12 职场文书
加入学生会自荐书
2015/03/05 职场文书
中学推普周活动总结
2015/05/07 职场文书
运动会报道稿大全
2015/07/23 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
Redis分布式锁的7种实现
2022/04/01 Redis
Python如何让字典保持有序排列
2022/04/29 Python