【发布时间】:2022-10-29 18:33:04
【问题描述】:
我有一个使用 axios 进行 http 请求的 vuejs 应用程序。
授权标头是通过请求拦截器设置的,如下所示:
const api = axios.create({
baseURL: process.env.API_URL,
crossdomain: true,
headers: {
"Content-Type": "application/json",
Accept: "application/json",
},
});
api.interceptors.request.use(
function (config) {
if (config.url !== "/register") {
const accessToken = localStorage.getItem('token');
if (accessToken) {
config.headers.Authorization = "Bearer " + accessToken;
}
}
return config;
},
function (error) {
// Do something with request error
return Promise.reject(error);
}
);
应用程序中发出的所有请求都通过此拦截器。但是有一个请求没有为某些 ios 设备设置授权标头(它在 web/android 设备和某些 ios 设备上运行良好)。这是请求:
export function getSessions(context, payload) {
return new Promise((resolve, reject) => {
api.get("/sessions/" + payload.sportId + "/?begin=" + payload.period.from + "&end=" + payload.period.to)
.then(({ data }) => {
resolve(data);
})
.catch((error) => {
reject(error);
});
});
}
我不明白可能出了什么问题。所有其他请求都可以正常工作,而该设备不能正常工作。
【问题讨论】:
标签: vue.js axios http-headers bearer-token quasar-framework