为什么springboot中的@CrossOrigin没起作用
时间: 2024-02-24 10:50:09 浏览: 121
在Spring Boot中,@CrossOrigin注解默认情况下只允许同源请求,如果需要允许跨域请求,需要在注解中添加一些参数。但是,如果在注解中只添加了@CrossOrigin而没有设置参数,那么它将不起作用。此时,需要在注解中添加一些参数,如@CrossOrigin(originPatterns = "*",allowCredentials = "true")。但是,如果在设置了allowCredentials为true的情况下,allowedOrigins参数设置为"*",就会出现上述报错信息。解决方案是将allowedOrigins参数设置为具体的域名或IP地址,或者使用allowedOriginPatterns参数代替allowedOrigins参数。
相关问题
springboot1.5.9使用@CrossOrigin
在Spring Boot 1.5.9中,可以使用@CrossOrigin注解来解决跨域问题。引用中的代码片段展示了如何在Spring Boot中使用@CrossOrigin注解。在使用@RestController注解的控制器类中,可以在@RequestMapping注解之前使用@CrossOrigin注解来允许跨域请求。在@CrossOrigin注解中,可以使用origins属性指定允许的请求来源,使用maxAge属性来指定缓存持续的最大时间(以秒为单位)。例如,@CrossOrigin(origins = "http://localhost:8088", maxAge = 3600)表示允许来自"http://localhost:8088"的请求,并且该请求的响应将在缓存中保持最多3600秒。中的文章也提到了使用@CrossOrigin注解来解决跨域问题。在@RequestMapping注解的方法上使用@CrossOrigin注解,可以在特定的方法上启用跨域请求。例如,@CrossOrigin注解可以添加到@RequestMapping注解的方法上,如@RequestMapping(value = "/insertUser2", method = RequestMethod.POST)所示,以允许来自任何来源的POST请求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [springboot下跨域解决的四种方法](https://blog.csdn.net/qq_15351167/article/details/89284397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [SpringBoot教程(七) | SpringBoot解决跨域问题](https://blog.csdn.net/lsqingfeng/article/details/122614630)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
springboot跨域@
你可以通过在Spring Boot应用程序中配置跨域访问来解决跨域问题。通常,你需要在你的控制器类或全局配置中添加一些注解或配置。以下是一种常见的方法:
1. 在你的控制器类上添加`@CrossOrigin`注解,该注解允许来自指定源的跨域请求:
```java
@RestController
@CrossOrigin(origins = "http://example.com")
public class YourController {
// your controller methods
}
```
2. 如果你希望允许来自多个源的跨域请求,你可以使用逗号分隔的字符串数组:
```java
@CrossOrigin(origins = {"http://example.com", "http://another-domain.com"})
```
3. 如果你想在全局范围内启用跨域访问,你可以创建一个配置类,并在其中添加一个`WebMvcConfigurer` bean:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*");
}
}
```
这将允许所有的跨域请求,以及指定的请求方法和请求头。
注意:跨域请求可能会引发安全问题,因此你应该仔细考虑允许哪些源进行跨域访问,并限制允许的请求方法和请求头。
阅读全文