详解爪哇岛中Spring jsonp跨域请求的实例
详解爪哇岛中Spring jsonp跨域请求的实例
jsonp介绍
带填充的JSON是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于server1.example.com的网页无法与不是server1.example.com的服务器沟通,而超文本标记语言的脚本元素是一个例外。利用脚本元素的这个开放策略,网页可以得到从其他来源动态产生的JSON资料,而这种使用模式就是所谓的JSONP。用JSONP抓到的资料并不是JSON,而是任意的JavaScript,用Java脚本语言直译器执行而不是用JSON解析器解。0、引入冲突包
依赖性groupIdorg.springframework.boot/groupId artifactId spring-boot-starter-jersey/artifactId/依赖性groupIdorg.springframework.boot/groupId artifactId spring-boot-starter-web/artifactId/依赖性其他介绍就不多说了,开始上手吧。
1、继承AbstractJsonpResponseBodyAdvice类JsonpAdvice,并加上@RestControllerAdvice注解
/*RestControllerAdvice的值指定拦截的包名*/@ restcontrollerdevice(' com。ctrl’)公共类jsonadvice扩展了abstractjsonresponsebdyaddvice { public jsonadvice(){ super(' callback ',' jsonp ');/*回调是全球资源定位器(统一资源定位符)请求拦截的参数名,如果拦截成功会将返回数据传入函数执行回调函数*/} } 2、创建计算机的计算机的ctrl按键按键类
package com.ctrl导入Java。乌提尔。HashMap导入Java。乌提尔。地图;导入javax。servlet。http。HttpServletrequest导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。休息控制器;@RestController公共类hello ctrl { @请求映射('/hello ')公共对象你好请求){ MapString,Objectdata=new HashMapString,Object();data.put('suc ',true);data.put('msg ',' save suc ');data.put('param ',请求。GetParameter(' a ')'='请求。getParameter(' d ');返回数据;} } 4、创建启动应用类:
package com.servicesimport org。弹簧框架。靴子。弹簧应用;导入组织。弹簧框架。靴子。自动配置。回弹应用程序;@ SprinBootAPPLication(scanBasePackages=' com ')公共类app { public static void main(String[]args){ SpringAPPLication。运行(App。类,args);} } 5、前端调用:
!DOCTYPE html html head titlejquery跨域实例/title!- jquery版本可以不是3.2.1版本的-脚本类型=' text/JAVAScript ' src=' http : jquery-3。2 .1 .js /脚本脚本类型=' text/JavaScript ' $(function(){/*这是快捷调用,回调是建议中设置的,是保留参数,jquery会替换掉这个问号全球资源定位器(统一资源定位符)可是不同于请求地址的任何url*/$ .getJSON('/hello?回调=?",函数(数据){//$(“# show content”).文本(“结果:”数据)});/*使用创建交互式、快速动态网页应用的网页开发技术方法调用*/$.ajax({ type : 'get ',async : false,url : '/hello ',dataType : 'jsonp ',//数据类型为jsonp data:{a:'b ',d:'c'},type:'POST ',jsonp : 'callback ',//服务端用于接收回收调用的功能名的参数成功:函数(数据){ $(“# show content”).文本(' result : '数据。suc '请求参数: '数据。param)},错误: function(){ alert(' fail ');} });})/脚本/标题正文div id='显示内容'/div/正文/html服务器端也不一定要用春天任何技术都可以,只要返回格式是下面的格式就可以,调用一个哈桑农户,出传入一个json或者是字符串就可以了。
/**/test01({'suc':true,' msg ' : ' save suc ' });直接访问返回数据:
以上关于Spring jsonp跨域请求的java例子用来详细解释。如有疑问,请在本网站社区留言或交流讨论。感谢阅读。我希望你能帮助每个人。感谢您对本网站的支持!
版权声明:详解爪哇岛中Spring jsonp跨域请求的实例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。