在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 二维数组
Nov 26 Javascript
JQuery动态给table添加、删除行 改进版
Jan 19 Javascript
javascript suggest效果 自动完成实现代码分享
Feb 17 Javascript
js获取事件源及触发该事件的对象
Oct 24 Javascript
jquery 按键盘上的enter事件
May 11 Javascript
jquery实现鼠标悬浮停止轮播特效
Aug 20 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
jQuery实现菜单栏导航效果
Aug 15 jQuery
浅谈react-router@4.0 使用方法和源码分析
Jun 04 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 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上传、管理照片示例
2006/10/09 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
js使用ajax读博客rss示例
2014/05/06 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python中的True,False条件判断实例分析
2015/01/12 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
python能自学吗
2020/06/18 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
2014年计生标语
2014/06/23 职场文书
写字楼租赁意向书
2014/07/30 职场文书
会计学习心得体会
2014/09/09 职场文书
《比的意义》教学反思
2016/02/18 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs