react-admin - 在 React Admin 中使用自定义标头处理 HttpError
问题描述
我正在使用此处指定的自定义标头:
const httpClient = (url, options = {}) => {
if (!options.headers) {
options.headers = new Headers({ Accept: 'application/json' });
}
const { token } = JSON.parse(localStorage.getItem('auth'));
options.headers.set('Authorization', `Bearer ${token}`);
return fetchUtils.fetchJson(url, options);
};
const dataProvider = simpleRestProvider('http://localhost:3000', httpClient);
(此示例也失败了,因为未设置 DELETE 标头,如此处所报告,但我相信这是另一个问题)
当 API 以错误代码和 JSON: 响应时{status:500, message:"Internal error"}
,
fetchUtils
给出源代码Promise
中HttpError
所见的。
我得到了正确的通知,我的理解是HttpError
应该处理,AuthProvider - checkError
但这永远不会发生,并且 React-Admin 抛出Unhandled Rejection (HttpError)
指向fetchUtils
.
这是我的checkError
:
checkError: (error) => {
const status = error.status;
if (status === 401 || status === 403) {
localStorage.removeItem("jwt");
localStorage.removeItem("permissions");
return Promise.reject();
}
return Promise.resolve();
}
我在这里想念什么?
解决方案
推荐阅读
- javascript - jqBootstrapValidation.js attr,从 json 文件翻译 data-validation-required-message
- node.js - NodeJs,试图了解 req.body 访问性能
- node.js - 使用 xml-crypto nodejs lib 生成的签名时出现无效签名错误
- c# - 将用户输入作为字符串并将其转换为可执行代码 C#
- api - 如何通过 API 以编程方式在 Microsoft Store 上创建订阅插件
- javascript - 在运行时更改 setInterval() 方法中的时间段
- javascript - 如何将时间舍入到小时和分钟而不是小时、分钟和秒?
- java - 从其他 java 项目编译 java 项目
- java - 使用 hive 上下文对包含数字的字符串列进行排序
- java - 如何使用字符串 Java 中的预定行、列和值数字创建矩阵