redux 用RTK查询处理302状态

mzillmmw  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(180)

我有一个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”没有显示标头。我在文档中找不到太多关于这方面的信息--我错过了什么?

2guxujil

2guxujil1#

要访问状态代码,可以使用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

相关问题