SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决

时间:2024-03-16 13:06:00

SpringBoot跨域问题解决?

想必大家都遇到跨域问题解决吧.也是最基础的问题之一.那么下来就来看看怎么解决吧?

首先创建项目1发送ajax请求,则是跨域请求.

这里是demo1,发送ajax请求到端口8080/info下,本机demo1端口为80.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决

然后创建项目2,端口为8080,为了测试,数据返回json,最终页面返回json数据则是测试通过.

这是demo2,用于被请求,端口8080.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决

这两步都做好了以后,咱们访问80端口会出现一个问题?

此时的问题就是跨域问题,那怎麽解决呢?
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决

解决方案:使用jsonp解决.解决原理:在客户端动态插入script标签,通过src属性去访问跨域资源.SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决

进行改造demo1中的index.html页面.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决jsonp要求服务器端返回数据格式为:callback函数名(json数据),改造服务端controller代码.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决最终结果成功!
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决其实还有一种就是使用注解方式来确认,就相当于一种凭证数据,你只要携带就行,spring已经整合这种跨域请求了.希望有帮助与你.

这种jsonp跨域解决方案相对于来说是有点麻烦的,下面进入正文,哈哈哈哈哈哈哈…是不是有人哈哈哈哈哈哈哈哈…

可以使用全局配置和注解的方式来实现跨域问题的解决.下面咱们一探究竟吧!!

全局配置:首先要在demo2服务端写一个配置类继承WebMvcConfigurationSupport重写addCorsMappings方法,方法名和方法代表的意思就不细说了,源码其实都一样.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决更改controller类,直接返回json数据就行了
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决其次修改demo1客户端ajax请求,直接异步请求就行.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决最后重启进行测试.最终测试通过解决跨域问题.
SpringBoot跨域问题解决?jsonp解决/全局配置解决/注解解决

接下来呢咱们使用注解,这篇博客有点多,应该分开的…

使用注解@CrossOrigin(value = “http://localhost:8080”,maxAge=3000)
这个注解里面的属性和方法是对应关系,我就不一一测试了…

希望可以帮助您…