我在本地主机上用Spring Boot配置了一个api。我的Spring Boot控制器应该允许CORS请求,因为我正在使用@CrossOrigin:
@RestController
@CrossOrigin
@RequestMapping("/api")
public class imageController {
@GetMapping("/images")
public List<Image> findAll(){
return imageService.findAll();
}
}
当使用Postman/cURL测试时,一切都工作正常(但cURL不关心CORS策略...)。现在,我正试图使用axios从我的反应应用程序中访问重新来源“http://localhost:8081/api/images”。我得到以下响应头,它确定请求因CORS而被阻止(请参见“X-XSS-保护”)。
Cache-Control
no-cache, no-store, max-age=0, must-revalidate
Connection
keep-alive
Date
Tue, 23 Mar 2021 11:10:54 GMT
Expires
0
Keep-Alive
timeout=60
Pragma
no-cache
Set-Cookie
JSESSIONID=0683F0AD7647F9F148C9C2D4CED8AFE6; Path=/; HttpOnly
Transfer-Encoding
chunked
Vary
Origin
Vary
Access-Control-Request-Method
Vary
Access-Control-Request-Headers
WWW-Authenticate
Bearer realm="Unknown"
X-Content-Type-Options
nosniff
X-Frame-Options
DENY
X-XSS-Protection
1; mode=block
我的axios请求如下所示:
function findAll() {
return instance.get('/api/images')
}
const instance = axios.create({
baseURL: `${config.API_BASE_URL}`,
headers: {
'Content-Type': 'application/json'
}
})
instance.interceptors.request.use(request => {
console.log('Starting Request', JSON.stringify(request, null, 2))
return request
})
instance.interceptors.response.use(response => {
console.log('Response:', JSON.stringify(response, null, 2))
return response
})
...它由以下代码调用:
componentDidMount() {
this.setState({ isLoading: true })
ImageService.authToken(keycloak.token)
ImageService.findAll().then((res) => {
this.setState({ images: res.data, isLoading: false });
});
}
如何配置Spring Boot以允许此类请求,而不会通过CORS策略阻止我的请求?
请注意,我的应用程序由KeyClope保护。但我不认为KeyClope的配置与本案有关。请让我知道,如果你需要的钥匙斗篷Spring开机配置。
您是否有可能会干扰的Spring Security配置(@EnableWebSecurity/@EnableSpringSecurity)?如果是,您也可以在那里配置cors()。
@Configuration
@EnableWebSecurity
@EnableSpringSecurity
class WebSecurityConfiguration(...)
override fun configure(http: HttpSecurity) {
http.cors().configurationSource {
CorsConfiguration().apply {
allowedOrigins = listOf("*")
allowedMethods = listOf("GET", "OPTIONS")
allowedHeaders = listOf("*")
}
}
也看到https://docs.spring.io/spring-security/site/docs/4.2.19.BUILD-SNAPSHOT/reference/html/cors.html
您好,您需要在您的Spring启动项目中创建一个全局cors配置。创建一个类并用@配置注释它。您可以遵循下面的示例。
@Configuration
public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://domain2.com")
.allowedMethods("PUT", "DELETE")
.allowedHeaders("header1", "header2", "header3")
.exposedHeaders("header1", "header2")
.allowCredentials(false).maxAge(3600);
}
};
}
}
以下是spring框架提供的完整指南https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
我们正在设置一个由Keycloak身份验证服务器备份的spring boot(V2.0.5)服务器应用程序。 Keycloak提供了一些Java管理API(keycloak-admin-client),不幸的是,这些API需要org.jboss.resteasy.resteasy-client包中的ResteasyClient作为依赖项。 但是,如果我将此依赖项添加到POM中作为 服务器启动时出现
我试图运行我的spring boot应用程序,设置了以下属性,我希望它继续重试从配置服务器加载属性50次,在任何两次尝试之间等待6秒,即使在此之后,它不能连接到配置服务器,它应该恢复启动或退出(我对重试后spring boot能够做的事情无所谓)。但它似乎并不像预期的那样表现。 我的启动命令- 如果您想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。如果要从特定配置文件加载数据库设置,则可
同时使用redux与反应。我试图在安装react-redux和redux库后,为我的应用程序(reactwiseldux)进行npm启动。我在下面看到这个错误。我自己也在想办法,但目前还没找到。请帮帮我。 “反应脚本”不被识别为内部或外部命令、可操作程序或批处理文件。npm错误!代码ELIFECYCLE npm ERR!错误1 npm错误!reactwithredux@0.1.0开始:npm ER
问题内容: 我正在玩最近添加的angular.js动画功能,但这并不能正常工作 http://jsfiddle.net/Kx4TS/1 它会破坏myDiv上的内容,并使其逐渐消失。最初应将其隐藏。如何解决? 问题答案: 现在,此问题已得到解决。升级到1.1.5。
我陷入了这个问题:我在后端使用Spring启动应用程序,在前端使用角度应用程序,问题是当我在后端调用一个特定的Rest网址时,该URL使用我已添加到后端的jar依赖项作为maven系统范围依赖项,我得到一个cors错误。所有其他后端网址工作正常 这是我如何包含后端的jar依赖项: 还要注意,我在前端和后端之间使用了Zuul调度程序,并且我在后端进行了此配置 公共类 CorsFilter 扩展 On
我是EHCache的新手,尝试将其用作我们的缓存服务器。我写了代码试图开始: 在类路径中,我已经包含了terra cotta-toolkit-1.6-5 . 2 . 0 . jar、terra cotta-toolkit-1.6-runtime-5.0 . 0、slf4j-api-1.6.6、slf4j-jdk14-1.6.6、ehcache-2.7.0和ehcache-ee-2.7.0 我有eh