import{_ as s,o as n,c as a,d as l}from"./app.0ed445b7.js";const i=JSON.parse('{"title":"Axios \u5C01\u88C5\u53CA\u63A5\u53E3\u7BA1\u7406","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/axios.md","lastUpdated":1672820852000}'),p={name:"guide/vue2/axios.md"},o=l(`

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(t,r,F,D,y,A){return n(),a("div",null,e)}const d=s(p,[["render",c]]);export{i as __pageData,d as default};