in src/utils/request.js [82:141]
export default function request(url, options) {
const defaultOptions = {};
const newOptions = { ...defaultOptions, ...options };
if (
newOptions.method === "POST" ||
newOptions.method === "PUT" ||
newOptions.method === "DELETE"
) {
if (!(newOptions.body instanceof FormData)) {
newOptions.headers = {
Accept: "application/json",
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json; charset=utf-8",
...newOptions.headers,
};
newOptions.body = JSON.stringify(newOptions.body);
} else {
// newOptions.body is FormData
newOptions.headers = {
Accept: "application/json",
...newOptions.headers,
};
}
}
// add token
let token = window.sessionStorage.getItem("token");
if (token) {
if (!newOptions.headers) {
newOptions.headers = {};
}
newOptions.headers = { ...newOptions.headers, "X-Access-Token": token };
}
return fetch(url, newOptions)
.then(checkStatus)
.then((response) => {
if (newOptions.method === "DELETE" || response.status === 204) {
return response.json();
}
return response.json();
})
.then((res) => {
if (checkResponseCode(res)) {
return res;
}
})
.catch((e) => {
const { dispatch } = store;
const status = e.name;
if (status === 401) {
dispatch({
type: "login/logout",
});
dispatch({
type: "global/resetPermission",
});
}
});
}