import{_ as s,c as n,o as a,a as l}from"./app.2b769fcb.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[{"level":3,"title":"","slug":"\u2705-axios-\u5C01\u88C5\u53CA\u63A5\u53E3\u7BA1\u7406"}],"relativePath":"guide/vue2/axios.md","lastUpdated":1661153879000}'),p={name:"guide/vue2/axios.md"},o=l(`

\u2705 Axios \u5C01\u88C5\u53CA\u63A5\u53E3\u7BA1\u7406

utils/request.js \u5C01\u88C5 axios ,\u5F00\u53D1\u8005\u9700\u8981\u6839\u636E\u540E\u53F0\u63A5\u53E3\u505A\u4FEE\u6539\u3002

javascript
import axios from 'axios'
import store from '@/store'
import { Toast } from 'vant'
// \u6839\u636E\u73AF\u5883\u4E0D\u540C\u5F15\u5165\u4E0D\u540Capi\u5730\u5740
import { baseApi } from '@/config'
// create an axios instance
const service = axios.create({
    baseURL: baseApi, // url = base api url + request url
    withCredentials: true, // send cookies when cross-domain requests
    timeout: 5000, // request timeout
})

// request \u62E6\u622A\u5668 request interceptor
service.interceptors.request.use(
    config => {
        // \u4E0D\u4F20\u9012\u9ED8\u8BA4\u5F00\u542Floading
        if (!config.hideloading) {
            // loading
            Toast.loading({
                forbidClick: true,
            })
        }
        if (store.getters.token) {
            config.headers['X-Token'] = ''
        }
        return config
    },
    error => {
        // do something with request error
        console.log(error) // for debug
        return Promise.reject(error)
    }
)
// respone\u62E6\u622A\u5668
service.interceptors.response.use(
    response => {
        Toast.clear()
        const res = response.data
        if (res.status && res.status !== 200) {
            // \u767B\u5F55\u8D85\u65F6,\u91CD\u65B0\u767B\u5F55
            if (res.status === 401) {
                store.dispatch('FedLogOut').then(() => {
                    location.reload()
                })
            }
            return Promise.reject(res || 'error')
        } else {
            return Promise.resolve(res)
        }
    },
    error => {
        Toast.clear()
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)
export default service

\u63A5\u53E3\u7BA1\u7406

\u5728src/api \u6587\u4EF6\u5939\u4E0B\u7EDF\u4E00\u7BA1\u7406\u63A5\u53E3

javascript
import qs from 'qs'
// axios
import request from '@/utils/request'
//user api

// \u7528\u6237\u4FE1\u606F
export function getUserInfo(params) {
    return request({
        url: '/user/userinfo',
        method: 'post',
        data: qs.stringify(params),
        hideloading: true, // \u9690\u85CF loading \u7EC4\u4EF6
    })
}

\u5982\u4F55\u8C03\u7528

javascript
// \u8BF7\u6C42\u63A5\u53E3
import { getUserInfo } from '@/api/user.js'

const params = { user: 'sunnie' }
getUserInfo(params)
    .then(() => {})
    .catch(() => {})
`,10),e=[o];function c(r,t,F,y,D,A){return a(),n("div",null,e)}const d=s(p,[["render",c]]);export{i as __pageData,d as default};