为什么会产生跨域??
同一协议(http/https),同一ip,同一端口(8080/8081),三同中有一个不同就产生了跨域。
后端如何解决跨域问题?
方法一:新建跨域配置文件
@Configuration
public class CorsConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(false)
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
.allowedOrigins("*");
}
};
}
}
方法二:使用注解
只用在Controller类上添加一个@CrossOrigin
注解就可以实现对当前controller 的跨域 访问了,当然这个标签也可以加到方法上。
@RequestMapping(value = "/users")
@RestController
@CrossOrigin
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.POST)
@CrossOrigin
public User create(@RequestBody @Validated User user) {
return userService.create(user);
}
}