[英]Vue 3 customize axios get,put,post
我想用 axios 自定义我的 get、post、put 函数。 在执行 axios.create() 操作后,当我执行 get 操作时,我希望它每次都执行 then 和 catch 操作。
import axios from "axios";
export default (apiName = "") => {
let headers = {
"Content-Type": "application/json"
};
let token = JSON.parse(localStorage.getItem("token") || "{}");
if (token && token !== "") {
headers.Authorization = `Bearer ${token.AccessToken}`;
}
const instance = axios.create({
baseURL:
apiName === ""
? process.env.VUE_APP_API_URL
: process.env.VUE_APP_API_URL + apiName,
withCredentials: false,
headers: headers
});
return instance;
};
axios.post('/api/Export/CopyShippingPlan/', plan)
.then(handleResponse)
.catch((error) => {
console.log(error);
});
我想在 axios.create 之后在这里定义 axios.post ,然后在我调用 axios.post 动作的任何地方都可以捕捉动作。 所以我不想每次都使用 then 并抓住我使用 axios 的地方。
我认为您正在寻找interceptors
:
例子:
const ApiService = axios.create()
ApiService.interceptors.response.use(
config => {
//your code
return config
},
error => {
console.log(error)
return Promise.reject(error)
})
ApiService.interceptors.request.use(
config => {
//your code
return config
},
error => {
console.log(error)
return Promise.reject(error)
})
设置它们后,您不需要做任何特别的事情,只需调用axios.get
、 axios.post
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.