javascript - CORS Spring Boot 和 React 管理员 - React
问题描述
我正在使用“React Admin”来创建管理界面(前端)。我正在为我的 REST API 使用 Spring Boot。我的 React 应用程序的 url 是:“http://localhost:3000”。我的 Spring Boot api 的 url 是:“http://localhost:8080”。
这是我用于 CORS 配置的 Spring Boot 代码,它位于一个名为 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 策略:
问题一:
问题 2: 我还收到以下错误,抱怨 restProvider: 错误消息 2
以上2个错误的可能解决方案是什么?
解决方案
CORSFilter
正如我在这个答案中提到的那样,您需要添加Spring Boot - https://stackoverflow.com/a/66882700/3709922
Access-Control-Allow-Origin
在标头值中添加允许的域。*
表示允许所有域。
添加标题值列表,如Content-Range
:Access-Control-Expose-Headers
httpServletResponse.addHeader("Access-Control-Expose-Headers",
"..., Content-Range");`
推荐阅读
- html - CSS slider doesn't scroll on mobile
- cloud-foundry - 如何在 PCF 中禁用“event_type”:“ContainerMetric”
- c# - Enterprise Architect 中图像的标记值
- android - error adding viewpager in fragment
- angularjs - 任何焦点
- c# - 代码阶段更新集合值
- vue.js - Vue JS v-model not working
- javascript - testing button class with enzyme
- vba - VBA How to make a msgbox to repeat only once for certain values
- python - 没有为 Scrapy Item Pipeline 命名的模块