1.使用无参数注解
@CrossOrigin
@CrossOrigin
@PostMapping(value ="/public/login")
@ResponseBody
public Response publicLogin(String phone, String pass) {
return new Response();
}
2.使用有参数注解
@CrossOrigin(origins = "*",maxAge = 3600)//跨域
@CrossOrigin(origins = "*",maxAge = 3600)//跨域
@PostMapping(value ="/public/login")
@ResponseBody
public Response publicLogin(String phone, String pass) {
return new Response();
}
3.继承WebMvcConfigurer
@Configuration
public class WebConfigurer implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
.maxAge(3600)
.allowCredentials(true);
}
}
还有使用过滤器的方法
失效的解决办法: 刚开始使用的时候,总是第一次可以,再访问就失效了,我想可能是第二次访问携带了cookie,因为有博客说明,如果携带cookie,就会失效,解决办法是加上allowCredentials="true"
@CrossOrigin(allowCredentials="true",maxAge = 3600)
参考:https://blog.csdn.net/shuoshuo132/article/details/83146668
如果浏览器返回状态码是415,可能是不正确的请求导致无法得到预期的响应,方法有错误,返回的数据错误的问题.
参考
https://blog.csdn.net/taiyangnimeide/article/details/78305131
也可能是
@RequestMapping(method = RequestMethod.POST)
没有加method = RequestMethod.POST的问题
参考
https://blog.csdn.net/cacheaads/article/details/100041281
参考https://yq.aliyun.com/articles/689064?spm=a2c4e.11153940.0.0.267a30fd27CR65