vuejs 2 后 做者尤雨溪发布消息,再也不继续维护vue-resource,官方推荐大axios。javascript
Axios 是一个基于 promise 的 HTTP 库,能够用在浏览器和 node.js 中。php
特性:css
从浏览器中建立 XMLHttpRequestshtml
从 node.js 建立 http 请求vue
支持 Promise APIjava
拦截请求和响应node
转换请求数据和响应数据jquery
取消请求webpack
自动转换 JSON 数据ios
客户端支持防护 XSRF
一、 利用npm安装npm install axios --save
二、 利用bower安装bower install axios --save
三、 直接利用cdn引入<script src="https://cdn.bootcss.com/axios/0.18.0/axios.js"></script>
假如你安装了vue脚手架,则在main.js文件中添加以下代码:
而后在组件中能够这样使用了:
说明:
安装其余插件的时候,能够直接在 main.js 中引入并使用 Vue.use()来注册,可是 axios并非vue插件,因此不能使用Vue.use(),因此只能在每一个须要发送请求的组件中即时引入。
为了解决这个问题,咱们在引入 axios 以后,经过修改原型链,来更方便的使用。
携带参数:
或
处理并发请求的助手函数
axios(url[, config])
请求方法的别名
为方便起见,为全部支持的请求方法提供了别名
axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
NOTE
在使用别名方法时, url、method、data 这些属性都没必要在配置中指定。
跨域的解决办法有不少,好比script标签 、jsonp、后端设置cros等等...,可是我这里讲的是webpack配置vue 的 proxyTable解决跨域。
这里我请求的地址是 http://www.thenewstep.cn/test/testToken.php
那么在ProxyTable中具体配置以下:
target:就是须要请求地址的接口域名。
这里列举了1种数据请求方式:axios
main.js代码:
axios请求页面代码:
这里的'apis'就是在ProxyTable中配置的'/apis'。
可使用自定义配置新建一个 axios 实例
axios.create([config])
实例:http组件
实例方法
如下是可用的实例方法。指定的配置将与实例的配置合并
axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
请求配置
这些是建立请求时能够用的配置选项。只有 url 是必需的。若是没有指定 method,请求将默认使用 get 方法。
响应结构
某个请求的响应包含如下信息
使用 then 时,你将接收下面这样的响应:
在使用 catch 时,或传递 rejection callback 做为 then 的第二个参数时,响应能够经过 error 对象可被使用,正如在错误处理这一节所讲。
配置的默认值/defaults
你能够指定将被用在各个请求的配置默认值
全局的 axios 默认值
自定义实例默认值
配置的优先顺序
配置会以一个优先顺序进行合并。这个顺序是:在 lib/defaults.js 找到的库的默认值,而后是实例的 defaults 属性,最后是请求的 config 参数。后者将优先于前者。这里是一个例子:
一、发送以前能够对请求进行拦截,还能够拦截响应,相似中间件。你能够在请求、响应在到达then/catch以前拦截他们。
二、取消拦截器:
三、 给自定义的axios实例添加拦截器:
可使用 validateStatus 配置选项定义一个自定义 HTTP 状态码的错误范围。
使用 cancel token 取消请求
Axios 的 cancel token API 基于cancelable promises proposal,它还处于第一阶段。
可使用 CancelToken.source 工厂方法建立 cancel token,像这样:
还能够经过传递一个 executor 函数到 CancelToken 的构造函数来建立 cancel token:
Note : 可使用同一个 cancel token 取消多个请求
http.js
在main.js中引入http,并修改原型链方便使用(同上面的第二大点)
这样,就能够在任何地方使用了:
Table.vue