我正在开发一个 React Native 应用程序,它从服务器获取 API 响应。有时,它会返回成功,但有时会捕获错误。
以下代码是我的获取函数:
export default async (url, body = null, method = 'GET') => {
let config = {
method,
};
return await fetch(url, config).then((response) => {
if (!response.ok) {
throw Error(response.statusText);
}
return response.json();
}).catch(error => {
console.warn(error); // sometimes it was catched in here
});
};
它返回各种错误消息,例如:
[语法错误:JSON 解析错误:"\u302\"不是有效的 Unicode 转义]
[语法错误:JSON 解析错误:转义字符 4 无效]
[语法错误:JSON 解析错误:"\u740\"不是有效的 Unicode 转义]
我已经通过浏览器检查了我的 API 响应,它没有发现响应有任何错误。我认为我的 ES 代码可能有问题。
这里出了什么问题...?
\u302\ 字符似乎类似于称为"组合回旋口音"的 ^ 符号http://www.fileformat.info/info/unicode/char/0302/index.htm
\u740\ 是一个"叙利亚女性点http://www.fileformat.info/info/unicode/char/0740/index.htm
我猜 JSON 解析器无法处理这些字符,或者至少无法以它们的呈现方式处理。看起来它们被用作转义字符,但很难知道,因为您没有提供生成每个错误的输出示例。