在rails app中,使用这个文件:
config/initializers/cors.rb
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*',
headers: :any,
methods: [:get, :post, :put, :patch, :delete, :options, :head],
expose: ['X-Total-Count']
end
end
字符串
此后端在http://localhost:3001上运行。
在前端,在react-admin
源代码中:
src/App.js
import React from 'react';
import { Admin, Resource } from 'react-admin';
import jsonServerProvider from 'ra-data-json-server';
import { PostList } from './posts';
const dataProvider = jsonServerProvider('http://localhost:3001');
const App = () => (
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} />
</Admin>
);
export default App;
型
它运行在http://localhost:3000。
当访问前端http://localhost:3000/#/posts时,从Chrome浏览器控制台获得错误:
警告:缺少键的翻译:“HTTP响应中缺少X-Total-Count标头。jsonServer数据提供程序要求资源列表的响应包含此标头以及用于构建分页的结果总数。如果您使用CORS,是否已在X-Control-Expose-Headers标头中声明X-Total-Count?”
即使在后台设置了expose: ['X-Total-Count']
,它也显示missing,为什么?
2条答案
按热度按时间qncylg1j1#
查看有关数据提供程序的文档。https://marmelab.com/admin-on-rest//RestClients.html
您的rails可能与您尝试使用的
jsonServerProvider
提供程序不兼容。jsonServerProvider不适用于生产使用。它更像是一个测试/示例提供程序,用于json-server兼容的假休息端点。如果某个预构建的提供程序不适合您的需要,您需要编写自己的传输。
7rtdyuoh2#
试试这个:
字符串
对我有用!