axios是VUE.js 2提供给用户异步获取调用接口的组件库,封装axios的好处是有利于减少代码的冗余,看起来清晰,明了。
直接上代码
import axios from 'axios' import { getToken } from './auth' // 创建axios实例 const service = axios.create({ baseURL: '/api', // api的base_url timeout: 5000, // 请求超时时间 headers: { 'Content-Type': 'application/json;charset=UTF-8' } }) // 表示跨域请求时是否需要使用凭证 service.defaults.withCredentials = true service.defaults.crossDomain = true export function commonRequestUtil(param) { return { header: { version: '1.0', token: getToken() }, body: param } } export function commonPost(url, params = {}) { return service({ url: url, method: 'post', data: commonRequestUtil(params) }) } export function commonPut(url, params = {}) { return service({ url: url, method: 'put', data: commonRequestUtil(params) }) } export function commonDelete(url, params = {}) { return service({ url: url, method: 'delete', data: commonRequestUtil(params) }) } export function get(url) { return service({ url: url, method: 'get' }) } export default function post(url, params = {}) { return new Promise((resolve, reject) => { axios.post(url, commonRequestUtil(params) , { headers: { 'Content-Type': 'application/json;charset=UTF-8' }}) .then(response => { resolve(response.data) }) .catch(err => { reject(err) }) }) }*这样就完成了axios的封装
这样在组件中就可以引入examRequest.js进行使用了,不过需要配置跨域 如何配置跨域请访问: link.