SpringBoot跨域问题解决?
想必大家都遇到跨域问题解决吧.也是最基础的问题之一.那么下来就来看看怎么解决吧?
首先创建项目1发送ajax请求,则是跨域请求.
这里是demo1,发送ajax请求到端口8080/info下,本机demo1端口为80.
然后创建项目2,端口为8080,为了测试,数据返回json,最终页面返回json数据则是测试通过.
这是demo2,用于被请求,端口8080.
这两步都做好了以后,咱们访问80端口会出现一个问题?
此时的问题就是跨域问题,那怎麽解决呢?
解决方案:使用jsonp解决.解决原理:在客户端动态插入script标签,通过src属性去访问跨域资源.
进行改造demo1中的index.html页面.
jsonp要求服务器端返回数据格式为:callback函数名(json数据),改造服务端controller代码.
最终结果成功!
其实还有一种就是使用注解方式来确认,就相当于一种凭证数据,你只要携带就行,spring已经整合这种跨域请求了.希望有帮助与你.
这种jsonp跨域解决方案相对于来说是有点麻烦的,下面进入正文,哈哈哈哈哈哈哈…是不是有人哈哈哈哈哈哈哈哈…
可以使用全局配置和注解的方式来实现跨域问题的解决.下面咱们一探究竟吧!!
全局配置:首先要在demo2服务端写一个配置类继承WebMvcConfigurationSupport重写addCorsMappings方法,方法名和方法代表的意思就不细说了,源码其实都一样.
更改controller类,直接返回json数据就行了
其次修改demo1客户端ajax请求,直接异步请求就行.
最后重启进行测试.最终测试通过解决跨域问题.
接下来呢咱们使用注解,这篇博客有点多,应该分开的…
使用注解@CrossOrigin(value = “http://localhost:8080”,maxAge=3000)
这个注解里面的属性和方法是对应关系,我就不一一测试了…