Axios 的基本使用
Axios 是一个基于 promise 的HTTP 库, 可以用在浏览器和 node.js 中。
1. 从浏览器创建 XMLHttpRequests
2. 从node.js 创建 http 请求
3. 支持Promise API
4. 拦截请求和响应
5. 转换请求数据 和 响应数据
6. 取消请求
7. 自动转换 JSON 数据
8. 客户端支持防御 XSRF
<script type="text/javascript" src="node_modules/vue/dist/vue.js"></script>
<script type="text/javascript" src="node_modules/axios/dist/axios.js"></script>
使用前将 axios ,添加到 Vue的父类 对象中。 以保证 Vue对象下挂载的所有的组件, 都可以访问到 axios
Vue.prototype.$axios = axios;
// 给Vue的父类 prototype(原型) 挂载了一个 $axios, 这个$axios 执向的就是 axios
// 然后因为所有的组件 都是 挂载到 Vue中的。就可以通过 this.$axios 拿到 axios 这个对象。
为 axios 配置一些默认值:
axios.defaults.baseURL = 'http://127.0.0.1:8888';
// 配置公共的 url. 这样在进行url 的请求时。 就不用每次都去写,前面这些 协议 ip 端口,一类的信息。
// 他会自动的进行, 拼接,然后访问
axios 的 get 请求
// 为给定 ID 的user 创建请求 axios 实在promise 的基础上做的封装
axios.get('/user?ID=12345')
.then(function. (response){
console.log(response)
})
.catch(function, (error){
console.log(error)
})
对比 jquery 的代码,其实都是一个流程: jquery是基于es5的基础上 从http库中,做的封装
$.ajax({
url:"/user?ID=12345",
type:"GET",
success:function(response){
//成功返回的数据
},
error:fucntion(error_data){
//返回的错误
}
})
axios 的post请求
sendAjaxByPost(){
// post 第二个参数是 要发送的数据, 这里可以提交任何的类型数据。 这要看后端要接受什么样的数据
// 如果想要发送一个对象到 后端, 需要使用 URLSearchParams() 对数据,进行处理。
var params = new URLSearchParams(); // 使用这个对象去处理
params.append('name',"alex111");
// 在Vue中使用es5的function 函数。 this的指向会指向到Window对象。
// 解决办法就是在进入这个函数之前, 讲this用另外的变量保存起来。 然后在函数内部使用这个变量,所代表的this
//var _this = this; // 把外层的this 赋值给 _this
//this.$axios.post('/create', params).then(function (res){_this.datas = res.data}).catch((error)=>{});
// 另一种方式就是,在vue中 如果要使用函数的话,尽量使用 => 箭头函数。 这样能保证this的执向,
// 一直都是指向当前的这个Vue 实例对象, 不会乱跑。
this.$axios.post('/create', params).then((res)=>{this.datas = res.data}).catch((error)=>{})
},
Axios 的基本使用的更多相关文章
- 为什么axios请求接口会发起两次请求
之前在使用axios发现每次调用接口都会有两个请求,第一个请求时option请求,而且看不到请求参数,当时也没注意,只当做是做了一次预请求,判断接口是否通畅,但是最近发现并不是那么回事. 首先我们知道 ...
- axios基本用法
vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法. 首先就是引入axios,如果你使用es6,只需要安装axios ...
- Axios、Lodash、TweenJS
Axios是一个基于promise的HTTP库 http://chuansong.me/n/394228451820 Lodash是一个JavaScript的函数工具集 http://www.css8 ...
- axios全攻略
随着 vuejs 作者尤雨溪发布消息,不再继续维护vue-resource,并推荐大家使用 axios 开始,axios 被越来越多的人所了解.本来想在网上找找详细攻略,突然发现,axios 的官方文 ...
- 抛弃vue-resource拥抱axios
vue-resource用法 import Vue from 'vue' import VueResource from 'vue-resource' Vue.use(VueResource) 是不是 ...
- Vue+axios 实现http拦截及路由拦截
现如今,每个前端对于Vue都不会陌生,Vue框架是如今最流行的前端框架之一,其势头直追react.最近我用vue做了一个项目,下面便是我从中取得的一点收获. 基于现在用vue+webpack搭建项目的 ...
- vue使用Axios做ajax请求
vue2.0之后,就不再对vue-resource更新,而是推荐使用axios 1. 安装 axios $ npm install axios 或 $ bower install axios 2. 在 ...
- vue全家桶(Vue+Vue-router+Vuex+axios)(Vue+webpack项目实战系列之二)
Vue有多优秀搭配全家桶做项目有多好之类的咱就不谈了,直奔主题. 一.Vue 系列一已经用vue-cli搭建了Vue项目,此处就不赘述了. 二.Vue-router Vue的路由,先献上文档(http ...
- 9.如何解决出现AXIOS的Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
问题描述: 由于restful接口需要在头部header传递两个字段: Content-Type: application/jsonAccess-Token: 84c6635800b14e0eba4f ...
- vue2.0设置proxyTable使用axios进行跨域请求
这里请求的是知乎日报的api,由@izzyleung这位大神提供的,这是github地址. 在vue-cli构建的项目中先安装axios npm install axios -S 这里暂不考虑用vue ...
随机推荐
- js 引号 转义字符 json字符串
element_obj.NewTitle.value = json_obj.NewTitle.replace(/\"/g, "\""); model.NewTi ...
- 前端js图片上传
前端js图片上传,原理用input type="file"获取图片然后把图片转换成base64编码传到后台. 图片上传 <!DOCTYPE html><html& ...
- DVWA--CRSF
首先我们对CRSF进行一个介绍 CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie.会话等),诱骗其点击恶 ...
- [CSP-S模拟测试]:表格(动态开点二维线段树+离散化)
题目传送门(内部题112) 输入格式 一个数$N$,表示矩形的个数. 接下来$N$行,每行四个整数$X_a,Y_a,X_b,Y_b$.分别表示每个矩形左下角和右上角的坐标. 保证$(X_a<X_ ...
- 【转载】使用 scikit-learn 进行特征选择
[转载]使用 scikit-learn 进行特征选择 Read more: http://bluewhale.cc/2016-11-25/use-scikit-learn-for-feature-se ...
- 死磕java多线程
1.线程和进程 1.1线程和进程的区别 进程 它是内存中的一段独立的空间,可以负责当前应用程序的运行.当前这个进程负责调度当前程序中的所有运行细节(操作系统为进程分配一块独立的运行空间): 线程 它是 ...
- linux iconv文件编码转换
linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf-8 -f gb2312 -c test.xml > text_UTF8.xml 1 -f 源编码-t 目标编 ...
- idea maven sync Cannot resolve xxx 的解决方案
经常会出现这种奇葩情况,提示找不到包 其实是因为网络波动或者突然断掉,导致包更新出现问题 直接去maven的仓库目录 找到不能找到的包 删掉相关目录 然后重新更新maven就行了 比如 直接去仓库目录 ...
- NP-Hard问题和NP-Complete问题
对 NP-Hard问题和NP-Complete问题的一个直观的理解就是指那些很难(很可能是不可能)找到多项式时间算法的问题.因此一般初学算法的人都会问这样一个问题:NP-Hard和NP-Complet ...
- php 发送邮件(2)qq邮箱开通
一 首选登录qq邮箱,在最上面那里找到设置,点击打开 二 下拉,找到账号安全和它下面的内容 ,开启服务 imap/smtp