首先报了post415的错,按照网上修改contentType之后,就报了如图所示的错误,网上说是跨域,可是传String类型的就不会出错,求各位大佬帮忙指点一下
确实跨域了原始端口63342跨域端口8080
那这个怎么解决呢
你是用的是注解@crossorigin(origins="*"),添加加个
origins="*"允许所有域名或者开放使用具体的63342那个具体的域名
又是注解不起作用,可以看一看这个
https://blog.csdn.net/testcs_dn/article/details/86537605?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1
string确实可以传 因为这是跨域的安全机制 如果你想让设备处于所有人都可以访问的状态 可以改request中header的origin属性 但是这么做可能存在安全风险 如果不是什么涉及密码涉及安全的接口完全可以开出来。
需要后端配合配下cors
或者换成jsonp
1、是springMVC的版本要在4.2或以上版本才支持@CrossOrigin
2、非@CrossOrigin没有解决跨域请求问题,而是不正确的请求导致无法得到预期的响应,导致浏览器端提示跨域问题。
3、在Controller注解上方添加@CrossOrigin注解后,仍然出现跨域问题,解决方案之一就是:
在@RequestMapping注解中没有指定Get、Post方式,具体指定后,问题解决。
参考
1、官方文档https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
2、http://fanshuyao.iteye.com/blog/2384189
2、https://blog.csdn.net/taiyangnimeide/article/details/78305131
3、https://blog.csdn.net/snowin1994/article/details/53035433
添加了这个,可还是一样的跨域报错...
@crossorigin(origins="*")
然后也指定了method = RequestMethod.POST
注解不好用,吧注解注释掉,换第二种全局配置,试试
直接设置头部response.setHeader("Access-Control-Allow-Origin","*");
在controller里加上这一段?可还是没有变化呀...
response.setHeader("Access-Control-Allow-Origin","*");
这一句放在哪呀
方便的话发一把工程代码,我帮你调试一下2450957609@qq.com
或者加一下QQ,发一下项目文件,这里发文件不方便
一般不用注解的啊,用过滤,添加拦截器
springboot 的配置 我的
/**
* 前后端分离场景
* 同源设置
* @return
*/
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
/**
* 同源过滤器设置
* @return
*/
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
你最好不要像那样全部的,你给定一个目录下
直接代理转发
1、前端请求设置
2、后台请求头设置Credentials为true
我这里对请求头有限制,你可以根据自己需要的调整,这样做比较安全些