cors-spring-boot和react-admin-react

4xrmg8kj  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(350)

我使用“react admin”来创建一个管理界面(前端)。我使用springboot作为restapi。我的应用程序的url是:“http://localhost:3000". 我的spring boot api的url是:“http://localhost:8080".
这是我的用于cors配置的spring引导代码,它位于一个名为corsconfig的单独类中:

@Configuration
public class CorsConfig implements WebMvcConfigurer{
    @Override
    public void addCorsMappings(CorsRegistry registry) {
         registry.addMapping("/**")
         .allowedOrigins("http://localhost:3000")  //frontend's link
         .allowedHeaders("*")
         .allowedMethods("*");
    }
}

这是我的代码:

import React from 'react';
import {Admin,ListGuesser, Resource} from 'react-admin';
import restProvider from 'ra-data-simple-rest';

const parentURL = restProvider(`http://localhost:8080`);

function App() {
    return(
       <Admin dataProvider={parentURL}>
          <Resource name="DashBoard" list={ListGuesser}/>
          <Resource name="list" list={ListGuesser} />
       </Admin>
    );
}
export default App;

在“chrome devtools”中,我收到了以下错误,它们抱怨在后端配置的cors策略:
问题1:
错误消息1
问题2:我也得到了以下错误,这是抱怨restprovider:错误消息2
以上两个错误有哪些可能的解决方案?

lnxxn5zx

lnxxn5zx1#

你需要加上 CORSFilter 正如我在回答中提到的那样-https://stackoverflow.com/a/66882700/3709922
在中添加允许的域 Access-Control-Allow-Origin 标题值。 * 表示允许所有域。
添加 Content-RangeAccess-Control-Expose-Headers 标题值列表,如:

httpServletResponse.addHeader("Access-Control-Expose-Headers",
        "..., Content-Range");`

相关问题