SpringBoot项目开发(二十四):支持跨域请求JSONP_zhuyu19911016520-CSDN博客

沙海 2021年4月28日12:06:15Java评论31字数 1204阅读4分0秒阅读模式
摘要

SpringBoot项目开发(二十四):支持跨域请求JSONP

文章源自JAVA秀-https://www.javaxiu.com/21250.html

SpringBoot项目开发(二十四):支持跨域请求JSONP

文章源自JAVA秀-https://www.javaxiu.com/21250.html

SpringBoot项目开发(二十四):支持跨域请求JSONP_zhuyu19911016520-CSDN博客文章源自JAVA秀-https://www.javaxiu.com/21250.html

闪耀的瞬间
2018-10-26 15:51:40
SpringBoot项目开发(二十四):支持跨域请求JSONP_zhuyu19911016520-CSDN博客
496

SpringBoot项目开发(二十四):支持跨域请求JSONP_zhuyu19911016520-CSDN博客文章源自JAVA秀-https://www.javaxiu.com/21250.html

收藏

1

文章源自JAVA秀-https://www.javaxiu.com/21250.html

分类专栏:
java
spring boot
SpringBoot 项目开发 文章源自JAVA秀-https://www.javaxiu.com/21250.html

版权 文章源自JAVA秀-https://www.javaxiu.com/21250.html

文章源自JAVA秀-https://www.javaxiu.com/21250.html

在SpringMVC4.1版本以后,Spring为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数据,SpringBoot接收解析web请求是依赖于SpringMVC,所以也可以继承此类文章源自JAVA秀-https://www.javaxiu.com/21250.html

代码如下,添加一个配置类,继承AbstractJsonpResponseBodyAdvice文章源自JAVA秀-https://www.javaxiu.com/21250.html

@ControllerAdvice(basePackages = "com.lkh.tour.controller")
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice {

    public JsonpAdvice() {
        super("callback","jsonp");
    }
}
1234567

再写个测试Controller文章源自JAVA秀-https://www.javaxiu.com/21250.html


@RestController
@RequestMapping("/test")
public class JsonpTestController {
 
    @RequestMapping(value = "/testJsonp",produces = MediaType.APPLICATION_JSON_VALUE)
    public Object testJsonp(){
        Map<String,String> map = new HashMap<>();
        map.put("name","zy");
        map.put("age","26");
        return map ;
    }
}
12345678910111213

当发送请求为:http://localhost:2000/test/testJsonp的时候,结果如下: SpringBoot项目开发(二十四):支持跨域请求JSONP_zhuyu19911016520-CSDN博客文章源自JAVA秀-https://www.javaxiu.com/21250.html

当发送请求为:http://localhost:2000/test/testJsonp?callback=getData,结果如下: SpringBoot项目开发(二十四):支持跨域请求JSONP_zhuyu19911016520-CSDN博客文章源自JAVA秀-https://www.javaxiu.com/21250.html

可以看到当我们在请求参数中添加callback参数的时候,返回的数据就是 jsonp 的 当请求参数中不带callback时,返回的数据是 json 的。可以让我们方便的灵活运用文章源自JAVA秀-https://www.javaxiu.com/21250.html

再附加一个js的jsonp请求示例文章源自JAVA秀-https://www.javaxiu.com/21250.html

<script type="text/javascript">
    function testJsonp() {
        $.ajax({
            type:'get',
            url:'http://localhost:2000/test/testJsonp',
            dataType:'jsonp',
            jsonp:"callback",
            success:function (data) {
                alert(data);
            },
            error:function (err) {
                alert('出现错误了!!!');
            }
        });
    }
</script>
12345678910111213141516
文章源自JAVA秀-https://www.javaxiu.com/21250.html

文章源自JAVA秀-https://www.javaxiu.com/21250.html

文章源自JAVA秀-https://www.javaxiu.com/21250.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定