我使用 C# 构建了一个 API,该 API 使用 JWT 令牌进行授权。在前端,我将这些令牌存储在本地存储中,并在创建请求时获取它们。创建 GET 或 DELETE 请求时,一切正常,并且使用console.log()我可以看到提取选项添加了授权标头。但是,当使用 POST 或 PATCH 方法时,授权标头在将其添加到对象后立即丢失。这是我的请求方法:const send = async (apiOptions: ApiParams): Promise<FetchReturn> => { const accessToken = GetAccessToken() const options: ApiOptions = { method: apiOptions.method, headers: { Authorization: `Bearer ${accessToken}` } } console.log(options) if (apiOptions.data) { options.headers = { 'Content-Type': 'application/json' } options.body = JSON.stringify(apiOptions.data) } const result = await fetch(`${getUrl()}/${apiOptions.path}`, options).then(res => res).catch(err => err) if (!result.ok) { if (IsExpired()) { const refreshResult = await fetch(`${getUrl()}/api/user/refresh`, {method: 'POST', headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(GetRefreshRequest())}).then(res => res).catch(err => err) if (refreshResult.ok) { Login(JSON.parse(await refreshResult.text())) return await send(apiOptions) } else if (refreshResult.status === 401) { Logout() window.location.reload() return { code: 0, text: ""} } } } const text = await result.text() return { code: result.status, text: text }}
添加回答
举报
0/150
提交
取消