在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 19 Javascript
jquery的live使用注意事项
Feb 18 Javascript
浅谈jquery中delegate()与live()
Jun 22 Javascript
js过滤HTML标签完整实例
Nov 26 Javascript
AngularJS ng-app 指令实例详解
Jul 30 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
详解js前端代码异常监控
Jan 11 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
vue 基于element-ui 分页组件封装的实例代码
Dec 10 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 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 cdata 处理(详细介绍)
2013/07/05 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
js同时按下两个方向键
2007/12/01 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
分页栏的web标准实现
2011/11/01 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python遍历数组的方法小结
2015/04/30 Python
Python机器学习之决策树算法
2017/12/22 Python
Python生成器以及应用实例解析
2018/02/08 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
python 如何引入协程和原理分析
2020/11/30 Python
Gap英国官网:Gap UK
2018/07/18 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
办护照工作证明
2014/10/01 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
关于感谢信的范文
2015/01/23 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python