vue全局配置axios
2017-10-10 16:05
465 查看
由于尤雨溪之前在微博发布消息,不再继续维护vue-resource,并推荐大家开始使用 axios 。所以在现在的项目中就试着使用了axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。使用起来也比较方便。
使用bower:
使用cdn:
在开发时,我们可以使用config进行axios的配置,还可以做一些请求拦截等。
首先,我们可以在src目录下创建untils文件夹来存放我们的配置文件。
配置如下:
这里我们还可以配置拦截器,在处理 then 或 catch 之前拦截请求和响应。因为项目中后端同事处理过了,这里我就不配置了 哈哈~~~
接下来,在mainjs中引用就可以使用了
具体如下:
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。使用起来也比较方便。
安装
使用npm:$ npm install axios
使用bower:
$ bower install axios
使用cdn:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
配置使用
安装完成就可以使用了,这里我们就对Vue项目说一下。在开发时,我们可以使用config进行axios的配置,还可以做一些请求拦截等。
首先,我们可以在src目录下创建untils文件夹来存放我们的配置文件。
配置如下:
'use strict' import axios from 'axios' import qs from 'qs' axios.interceptors.request.use(config => { // 这里的config包含每次请求的内容 // 判断localStorage中是否存在api_token if (localStorage.getItem('api_token')) { // 存在将api_token写入 request header config.headers.apiToken = `${localStorage.getItem('api_token')}`; } return config; }, err => { return Promise.reject(err); }); axios.interceptors.response.use(response => { return response }, error => { return Promise.resolve(error.response) }); function checkStatus (response) { // 如果http状态码正常,则直接返回数据 if (response && (response.status === 200 || response.status === 304 || response.status === 400)) { return response } // 异常状态下,把错误信息返回去 return { status: -404, msg: '网络异常' } } function checkCode (res) { // 如果code异常(这里已经包括网络错误,服务器错误,后端抛出的错误),可以弹出一个错误提示,告诉用户 if (res.status === -404) { alert(res.msg) } if (res.data && (!res.data.success)) { // alert(res.data.error_msg) } return res } // 请求方式的配置 export default { post (url, data) { // post return axios({ method: 'post', baseURL: '/backapis', url, data: qs.stringify(data), timeout: 5000, headers: { 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } }).then( (response) => { return checkStatus(response) } ).then( (res) => { return checkCode(res) } ) }, get (url, params) { // get return axios({ method: 'get', baseURL: '/backapis', url, params, // get 请求时带的参数 timeout: 5000, headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then( (response) => { return checkStatus(response) } ).then( (res) => { return checkCode(res) } ) } }
这里我们还可以配置拦截器,在处理 then 或 catch 之前拦截请求和响应。因为项目中后端同事处理过了,这里我就不配置了 哈哈~~~
接下来,在mainjs中引用就可以使用了
import axios from './untils/http'; // 这样就可以通过$axios发起请求了(个人使用喜好) Vue.prototype.$axios = axios;
具体如下:
相关文章推荐
- vue 配置axios
- Vue-cli开发笔记二----------接口调用、配置全局变量
- Vue项目全局配置页面缓存之按需读取缓存的实现详解
- vue-cli 引入、配置axios的方法
- Vue单页及多页应用全局配置404页面实践记录
- vue.js简单配置axios的方法详解
- Vue文件配置全局变量的实例
- 基于vue-cli的vue项目之axios的使用6--配置axios
- axios在vue中的简单配置与使用
- axios在vue中的简单配置与使用
- 在vue中全局使用axios
- 基于vue配置axios的方法步骤
- vue中接口域名配置为全局变量
- Vue项目全局配置微信分享思路详解
- 18-Vue实例的全局配置
- 使用vue-cli+axios配置代理进行跨域访问数据
- Vue------第五天(Vue的Ajax请求,使用Axios,目前熟悉了一下,主要包括GET请求、POST请求、并发请求、请求参数的配置、服务器响应的结构以及对服务器响应错误的简单处理)
- Vue引入sass并配置全局变量的方法
- axios在vue中的简单配置与使用
- Vue官方文档梳理之全局配置