borrowed from other articles for axios use

import axios from  'axios'
import qs from 'qs'

axios.interceptors.request.use(config=>{
  store.commit('UPDATE_LOADING',true)
  return config
},err=>{
  return Promise.reject(err)
})
axios.interceptors.response.use(response=>{
  return response
},err=>{
  return Promise.resolve(err.response)
})

function errorState(response){
  store.commit("UPDATE_LOADING",false);
  console.log(response);
  if(response&&(response.status==200||response.status==304||response.status==400)){
    return response
  }else{
    Vue.prototype.$msg.alert.show({
      title:'提示',
      content:'服务器开小差了'
    })
  }
}

function succesState(res){
  store.commit("UPDATE_LOADING",false)
  if(res.data.errCode=='00002'){
    Vue.prototype.$msg.alert.show({
      title:'提示',
      content:res.data.errDesc||'网络异常啦',
      onShow(){

      },onHide(){
        console.log("确定")
      }
    })
  }else if(res.data.errCode!='000002'&&res.data.errCode!='000000'){
    Vue.prototype.$msg.alert.show({
      title:"提示",
      content:res.data.errDes||'网络异常啦',
      onShow(){

      },onHide(){
        conosle.log("确定")
      }
    })
  }
}
const httpServer=(opts,data)=>{
  let Public={//公共参数
    'srAppid':''
  }
  let httpDefaultOpts={
    method:opts.method,
    baseURL,
    url:opts.urs,
    timeout:10000,
    params:Object.assign(Public,data),
    data:qs.stringify(Object.assign(Public,data)),
    headers:opts.method=='get'?{
      'X-Requested-Width':'XMLHttpRequest',
      'Accept':'application/json',
      'Content-Type':'application/json;charset=UTF-8'
    }:{
      'X-Requested-With':'XMLHttpRequest',
      'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'
    }
  }
if(opts.method=='get'){
  delete httpDefaultOpts.data
}else{
  delete httpDefaultOpts.params
}
 let promise=new Promise((resolve,reject)=>{
   axios(httpDefaultOpts).then(
     (res)=>{
       successState(res)
       resolve(res)
     }
   ).catch(
     (response)=>{
       errorState(response)
       reject(response)
     }
   )
 })
 return promise
}
//另外的封装
import axios from 'axios'
import qs from 'qs'
const ajax={
    post:function(url,data={}){
        return new Promise((resolve,reject=>{
            axios.post(url,qs,stringify(data))
            .then((response)=>{
                resolve(response.data);
            })
            .catch((error)=>{
                if(!error.data.sucess){
                    $.toptip("服务器错误",error.data.message)
                }else{
                    $.toptip('服务器错误',error.data.message)
                };
                reject(error);
            })
        }))
    },
    get:function(url,params={}){
        return new Promise((resolve,reject)={
            axios.get(ur,{
                params:qs.stringify(params)
            })
            .then((response)=>{
                resolve(response.data)

            })
            .catch((error)=>{
                if(!error.data.success){

                }else{

                }
                reject(error)
            })
        })
    }
}


你可能感兴趣的:(js,vue,axios)