vue HTTP 封装 发表于 2018-05-03 | 分类于 开发 , 前端开发 axios)为何选用 axios 做 http 请求 尤大大推荐 够简单易上手,http 功能全,适合我们业务逻辑 浏览器兼容不错 封装 axios 编写 httpService 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849// 导入依赖import axios from 'axios';import qs from 'qs';// 创建axios对象var instance = axios.create({ baseURL: SYSTEM.BASE_URL, method: 'get', timeout: SYSTEM.TIMEOUT, // 请求头封装 headers: { 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/x-www-form-urlencoded' }});// request拦截器instance.interceptors.request.use(function (config) { config.url = config.url + (config.prefix ? config.prefix : SYSTEM.SUFFIX_URL); if (config.method == 'get') { config.params = config.data; } // 上传功能 if (config.upload) { config.data = config.data; } else { // 参数序列化 config.data = qs.stringify(config.data); } return config;}, function (error) { return Promise.reject(error);});// response拦截器instance.interceptors.response.use(function (response) { if (!response.data.respCode) { return response.data; } else { return Promise.reject(new Error(...); }}, function (error) { return Promise.reject(error);})export default { install: function (Vue, Option) { Object.defineProperty(Vue.prototype, "$http", { value: instance }); }};export const $http = instance; Vue 插件方式注入 123...Vue.use(httpService);... 使用 1234567891011import { $http} from './httpService';$http.request({ method: 'post', url: API.trade_order, data: { tradeId: 111 }}) 【长按关注】看看↓↓↓? 【前端雨爸】分享前端技术实践,持续输出前端技术文章 欢迎留言,评论交流,一起讨论前端问题 📢 因为是开源博客,为避免 Gitalk授权 带来的 安全风险,也可访问