我们有一个基本的基于fetchBaseQuery的RTK切片,就像在RTK文档上推荐的那样。
另外,有一个后端服务,将数据作为响应中的文本返回,但在响应头上声明为。我知道这不是一个一致的,但不幸的是,我们现在没有特权来改变这一点。
我们试图以正确的方式解析它,但是我们无法对数据有任何了解,我们在RTK中没有看到,甚至无法在transformResponse中找到它。当我们检查网络选项卡上的XHR/Fetch活动时,我们已经看到了预期的响应,这是我们成功地接收到数据的唯一线索。
我认为RTK不会处理这些数据,因为它在响应头上被声明为一个json,但是作为文本在正文中提供了字符串。这有点尴尬,因为我们在任何地方都看不到任何错误。
你知道我们怎样才能在RTK内达到回应吗?
发布于 2022-09-30 21:59:56
可以在端点上设置responseHandler: 'text'。
发布于 2022-10-01 01:02:32
从医生那里:
默认情况下,fetchBaseQuery假设您得到的每个响应都将被解析为json。如果您不希望发生这种情况,您可以指定像text这样的替代响应处理程序,或者使用一个接受原始响应对象的自定义函数-
文档中的示例:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
export const customApi = createApi({
baseQuery: fetchBaseQuery({ baseUrl: '/api/' }),
endpoints: (builder) => ({
getUsers: builder.query({
query: () => ({
url: `users`,
// *********************************8
// this is how you handle
responseHandler: (response) => response.text(), // This is the same as passing 'text'
}),
}),
}),
})https://stackoverflow.com/questions/73912757
复制相似问题