在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 相关文章推荐
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
javascript实现按回车键切换焦点
Feb 09 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
jQuery遍历json的方法分析
Apr 16 Javascript
深入理解JS DOM事件机制
Aug 06 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
Javascript设计模式之装饰者模式详解篇
Jan 17 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
Vue实现点击当前行变色
Dec 14 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
js实现简单进度条效果
2020/03/25 Javascript
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
python多线程扫描端口(线程池)
2019/09/04 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
教育基金募捐倡议书
2014/05/14 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
傅雷家书读书笔记
2015/06/29 职场文书