美文网首页
36.http.js

36.http.js

作者: yaoyao妖妖 | 来源:发表于2018-09-14 12:43 被阅读5次
import axios from 'axios'
import store from '../store'

// const host = process.env.NODE_ENV === 'development' ? '/api' : 'http://10.192.36.147/vms/services/VmsSdkWebService?wsdl' // 根据 process.env.NODE_ENV 的值判断当前是什么环境

const http = axios.create({
 baseURL: '/api',
 headers: {
   'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
   timeout: 10000
 }
})

http.interceptors.request.use(function (config) {
 // 配置config
 // config.headers.Accept = 'application/json, text/plain, */*'
 return config
})

/**
* 拦截响应response,并做一些错误处理
*/
http.interceptors.response.use(
 response => {
   const data = response.data
   if (data) {
     switch (data.status) {
       case '0':
         // 处理相关业务
         return data

       case '0005':
         data.message = ''
         break
       default:
     }
     return Promise.reject(response)
   } else {
     const err = new Error('未知错误,请重试')
     err.data = data
     err.response = response
     throw err
   }
 },
 err => {
   console.info('err===original====', JSON.stringify(err))
   switch (err.response.status) {
     case 400:
       err.message = '请求参数错误'
       break

     case 401:
       err.message = '未授权,请登录'
       break

     case 403:
       err.message = '跨域拒绝访问'
       break

     case 404:
       err.message = `请求地址出错: ${err.response.config.url}`
       break

     case 408:
       err.message = '请求超时'
       break

     case 500:
       err.message = '服务器内部错误'
       break

     case 501:
       err.message = '服务未实现'
       break

     case 502:
       err.message = '网关错误'
       break

     default:
   }
   return Promise.reject(err)
 })

// 返回一个Promise
export default function fetch (url, bizParam, type) {
 let qs = require('qs')
 let comParam = {
   token: store.state.auth.tokenData.token
 }

 let param = qs.stringify(Object.assign({}, comParam, bizParam))

 return new Promise((resolve, reject) => {
   if (type === 'get') {
     http.get(url, param)
       .then(response => {
         console.info('then', response)
         resolve(response.data)
       }, err => {
         console.info('err', err)
         resolve(err)
       })
       .catch((error) => {
         console.info('error', error)
         reject(error)
       })
   } else {
     http.post(url, param)
       .then(response => {
         console.info('then', response.data)
         resolve(response.data)
       }, err => {
         console.info('err', err)
         resolve(err)
       })
       .catch((error) => {
         console.log('error', error)
         reject(error)
       })
   }
 })
}

相关文章

网友评论

      本文标题:36.http.js

      本文链接:https://www.haomeiwen.com/subject/yihogftx.html