1

我正在使用 React js ( Admin on Rest ) 进行 API 调用 (GET )。

当我调用 localhost:5001/cites 时,我已经检查了 API 服务器,服务器返回了城市数据,但我不知道它在客户端出错,这是来自浏览器的日志:

failure.js:18 Error: The X-Total-Count header is missing in the HTTP Response. This header is necessary for pagination. If you are using CORS, did you declare X-Total-Count in the Access-Control-Allow-Headers header?

at convertHTTPResponseToREST (http://localhost:3000/static/js/bundle.js:33928:28)
at http://localhost:3000/static/js/bundle.js:33966:21

failure.js:18 Error: The Content-Range header is missing in the HTTP Response. This header is necessary for pagination. If you are using CORS, did you declare Content-Range in the Access-Control-Allow-Headers header?

at convertHTTPResponseToREST (http://localhost:3000/static/js/bundle.js:33010:28)
at http://localhost:3000/static/js/bundle.js:33037:21

有人可以帮忙吗?谢谢

4

2 回答 2

2

Admin-on-rest 需要一种方法来确定总共有多少结果,即使您的 API 仅返回结果的子集 - 以便构建分页控制器。例如,如果 API 返回 10 个结果,但提到总共有 100 个结果,则 admin-on-rest 将显示 10 个页面链接。

和都希望在响应标头中看到此信息,无论是 insimpleRestClient还是in 。jsonServerRestClientX-Total-CountContent-Range

如果您的 API 不包含这些标头,您可以:

  • 更新您的 API 以将总计作为X-Total-Count标头包含在内,或者
  • 编写您自己的 REST 客户端以获取有关其他地方的记录总数的信息(例如在响应正文中)
于 2017-01-12T17:55:31.380 回答
0

更新您的后端 API 函数以获取 X-Total-Count 并将其设置为 Response Header

例子:

exports.findAll = (req, res) => {
  var total = Data.countAll()// your count all function
  Data.findAll({ where: condition })
    .then(data => {
      res.set('Access-Control-Expose-Headers', 'X-Total-Count')
      res.set('X-Total-Count', total)
      res.send(data);
    })
    .catch(err => {
      res.status(500).send({
        message:
          err.message || "Some error occurred while retrieving data."
      });
    });
};
于 2021-06-21T07:46:57.860 回答