详解回弹多跨域请求的支持(JSONP)
在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的JSONP数据,而在4.1版本以后的SpringMVC中,为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数据(跳脚接收解析网请求是依赖于SpringMVC实现的)。下面我们就看一下怎么用AbstractJsonpResponseBodyAdvice来支持跨域请求。
使用AbstractJsonpResponseBodyAdvice来支持跨域请求很简单,只需要继承这个类就可以了。具体代码如下:
打包。zkn。learnspringboot。配置;导入组织。弹簧框架。网络。绑定。注释。控制器建议;导入组织。弹簧框架。网络。servlet。MVC。方法。注释。abstractjsonresponsebody advice;/** *由WB-张克南于2016/12/1创建*/@ ControllerAdvice(基本包=' com。zkn。learnspringboot。网络。控制器’)公共类jsonadvice扩展了abstractjsonresponsebyadvice { public jsonadvice(){ super(' callback ',' jsonp ');} } 下面我们写个类来测试一下:
打包。zkn。learnspringboot。网络。控制器;导入com。zkn。learnspringboot。领域。人员域;导入组织。弹簧框架。豆子。工厂。注释。自动连线;导入组织。弹簧框架。http。mediatype导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。休息控制器;/** *由WB-张克南于2016/12/1创建*/@ rest controller @请求映射("/jsonp ")公共类jsontestcontroller { @ Autowired私人域名person domain;@RequestMapping(值='/testJsonp ',产生=MediaType .APPLICATION _ JSON _ VALUE)public PersonDomain testJsonp(){ return PersonDomain;} } 当我们发送请求为:http://localhost :8003/jsonp/testJsonp的时候,结果如下:
当我们发送的请求为:http://localhost :8003/jsonp/testJsonp?回调=回调的时候,结果如下所示:
看到区别了吗?当我们在请求参数中添加回收参数的时候,返回的数据就是jsonp的,当我们请求参数中不带回收的时候,返回的数据是json的。可以让我们方便的灵活运用。下面再奉上一个jsonp的完整案例。
前台页面:
"%@"页面内容类型=' text/html;charset=UTF-8 ' language=' Java ' % html head title title/title script src=' http : resources/js/jquery-2。1 .4 .量滴js ' type=' text/JavaScript '/script/head body输入类型='按钮'值='测试jsonp请求onclick=' testJsonp()'/script type=' text/JavaScript '函数testJsonp() { $ .ajax({ type:'get ',URL : ' http://localhost :8003/jsonp/testJsonp ',dataType:'jsonp ',jsonp:'callback ',success :函数(数据){ alert(数据。用户名“”数据。密码);},error:function (err) { alert('出现错误了!');} });}/脚本/正文/html后台代码1:
打包。zkn。learnspringmvc。新闻。控制器;导入组织。弹簧框架。刻板印象。控制器;导入组织。弹簧框架。网络。绑定。注释。请求映射;/** *由zkn于2016年12月3日创建*/@控制器公共类jsontestcontroller { @请求映射(' testJsonp ')公共字符串testJsonp(){ return ' jsonp ';} } 下面我们发送请求如下:http://localhost :8080/LearnSpringMvc/testJsonp
当我们点击测试jsopn请求这个按钮的时候,效果如下:
我们成功的实现了一个跨越的请求。更详细的请求信息如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:详解回弹多跨域请求的支持(JSONP)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。