【发布时间】:2019-06-11 08:19:07
【问题描述】:
我正在使用 react native 0.48.3 并从 fetch 请求中获取响应我没有看到任何编码问题它自己解决了编码问题,因为我的响应的内容类型是:application/json;charset=iso- 8859-1。现在我将我的本机应用程序升级到 0.59.8 我不知道为什么 fetch 不再解决编码问题,尽管它是相同的代码。我刚刚升级了我的应用程序。你有什么主意吗 ?这是我的获取代码:
export const setDocumentListDataAsync = (k, action, server) => {
return () => {
fetch(defineUrlForDocumentList(action, server), {
credentials: 'include',
headers:{
contentType: "application/json; charset=utf-8",
}
})
.then(
(response) => {
var contentType = response.headers.get('content-type')
console.warn(contentType)
return response
}
).then((response) => {
return response.json()
}).catch((err) => {
console.log(err)
})
}
}
【问题讨论】:
-
所以服务器响应与您期望的不匹配?当您在请求中传递
Content-Type时,您只需将其定义为请求,而不是响应。 -
^ 当您将标头设置为
utf-8时,fetch 可能期望响应为utf-8并且解码不正确。 -
是的。那么我怎样才能强制它将响应类型转换为 utf-8 呢?而你认为 react js 的版本会影响 fetch 的工作方式吗?
-
@Avin 即使我删除标题我也会遇到同样的问题
-
是的,fetch 在 0.48 中使用 whatwg-fetch v1,在当前 master 分支中使用 whatwg-fetch v3。
标签: javascript reactjs react-native fetch