【问题标题】:Handling 302 status with RTK Query使用 RTK 查询处理 302 状态
【发布时间】:2023-01-27 12:02:45
【问题描述】:
我有一个 POST 请求,成功时返回 302。我需要获取包含我需要重定向到的 url 的位置响应标头。目前我有这个:
accountLogin: builder.mutation<any, any>({
query: (body) => ({
url: `/accounts/login`,
method: 'POST',
body,
responseHandler: (response) => {
console.log(response, response.headers);
return response.text();
},
}),
}),
如果我查看浏览器的网络选项卡,就会看到 302,以及带有正确 URL 的位置标头。但是 responseHandler 中的“console.log”没有显示标题。我在文档中找不到太多关于这个的信息——我错过了什么?
【问题讨论】:
标签:
redux
http-status-code-302
rtk-query
response-headers
【解决方案1】:
要访问状态代码,您可以使用 validateStatus,如下所示:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
export const customApi = createApi({
// Set the baseUrl for every endpoint below
baseQuery: fetchBaseQuery({ baseUrl: '/api/' }),
endpoints: (builder) => ({
getUsers: builder.query({
query: () => ({
url: `users`,
// Example: we have a backend API always returns a 200,
// but sets an `isError` property when there is an error.
validateStatus: (response, result) =>
response.status === 200 && !result.isError,
}),
}),
}),
})
或使用transformResponse
transformResponse: (response, meta, arg) =>
response.some.deeply.nested.collection