axios post,get 封裝,支援資料類型

來源:互聯網
上載者:User

標籤:mit   from   index   nbsp   func   fetch   rect   logo   頁面   

import axios from ‘axios‘import store from ‘../vuex/store‘import router from ‘../router/index‘import { stringify } from ‘qs‘  //qs模組// axios 配置axios.defaults.timeout = 5000;axios.defaults.baseURL = ‘‘;//‘http://hzzly.net:4000‘;// http request 攔截器axios.interceptors.request.use(  config => {    if (store.state.token) {      config.headers.Authorization = `token ${store.state.token}`;    }    return config;  },  err => {    return Promise.reject(err);  });// http response 攔截器axios.interceptors.response.use(  response => {    return response;  },  error => {    if (error.response) {      switch (error.response.status) {        case 401:          // 401 清除token資訊並跳轉到登入頁面          //store.commit(types.LOGOUT);          router.replace({            path: ‘login‘,            query: {redirect: router.currentRoute.fullPath}          });          break;        case 403:          break;        case 504:          break;        case 500:          //store.dispatch(types.AJAX_ERROR,500);          break;        case 404:          //store.dispatch(types.AJAX_ERROR,404);          break;      }    }    console.log(JSON.stringify(error));//console : Error: Request failed with status code 402    return Promise.reject(error.response.data)  });/*{  type:type,    params:params,}*/// 封裝請求export function fetch (url, options) {  var opt = options || {}  return new Promise((resolve, reject) => {    axios({      method: opt.type || ‘post‘,      url: url,      params: opt.params || {},      // 判斷是否有自訂頭部,以對參數進行序列化。不定義頭部,預設對參數序列化為查詢字串。      data: (opt.headers ? opt.data : stringify(opt.data)) || {},      responseType: opt.dataType || ‘json‘,      // 設定預設要求標頭      headers: opt.headers || {‘Content-Type‘: ‘application/x-www-form-urlencoded; charset=UTF-8‘}    }).then(response => {      if (response.data.code === 0) {        resolve(response.data)      } else if (response.data.code === ‘000‘) {        resolve(response.data)      } else {        reject(response.data)        //store.commit(‘SET_LOADING‘, false)      }    }).catch(error => {      console.log(error)      reject(error)      //store.commit(‘SET_LOADING‘, false)    })  })}export default axios;

使用axios封裝的功能

import { fetch } from ‘../../util/api‘//使用者登入export const userLogin= (data)=> fetch(‘/api/users/api/userLogin‘,{  data,  ‘type‘:‘post‘});

 

axios post,get 封裝,支援資料類型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.