阅读 13585 次
发表时间:2014-06-30
是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。JSON系统开发方法是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串的活动的顺序组合成一个完整的工作进程。 2.看下客户端 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.ajax({ url:'http://localhost/jsonp_test1.json', dataType:"jsonp", jsonp:"jsonpcallback", success:function(data){ var $ul = $("<ul></ul>"); $.each(data,function(i,v){ $("<li/>").text(v["id"] + " " + v["name"]).appendTo($ul) }); $("#res").append($ul); } }); }); </script> </head> <body> </body> </html> <ul></ul> <div id="res"></div> 3.服务端 1 普通servlet String jsonp = request.getParameter("jsonpcallback") String str = "[{""id"":""1"",""name"":""测试1""},{""id"":""2"",""name"":""测试2""}]" str = jsonp + "(" +str+")" response.Write(str) 4.再看spring mvc服务端写法 @RequestMapping(value="/jsonp_test1.json", method=RequestMethod.GET) @ResponseBody public JSONPObject login(HttpServletRequest request,HttpServletResponse response,@RequestParam String callback) throws Exception { ModelAndView model = new ModelAndView(); List l=new ArrayList(); for(int i=0;i<2;i++){ Otc otc = new Otc(); otc.setName("测试1"); otc.setId(i+1); l.add(otc); } model.addObject("data", l); return new JSONPObject(callback, model); } 通过JSONPObject实现了简单的jsonp的封装 |
|
发表时间:2014-07-03
lingding_cn 写道 1.JSONP
是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。JSON系统开发方法是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串的活动的顺序组合成一个完整的工作进程。 2.看下客户端 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.ajax({ url:'http://localhost/jsonp_test1.json', dataType:"jsonp", jsonp:"jsonpcallback", success:function(data){ var $ul = $("<ul></ul>"); $.each(data,function(i,v){ $("<li/>").text(v["id"] + " " + v["name"]).appendTo($ul) }); $("#res").append($ul); } }); }); </script> </head> <body> </body> </html> <ul></ul> <div id="res"></div> 3.服务端 1 普通servlet String jsonp = request.getParameter("jsonpcallback") String str = "[{""id"":""1"",""name"":""测试1""},{""id"":""2"",""name"":""测试2""}]" str = jsonp + "(" +str+")" response.Write(str) 4.再看spring mvc服务端写法 @RequestMapping(value="/jsonp_test1.json", method=RequestMethod.GET) @ResponseBody public JSONPObject login(HttpServletRequest request,HttpServletResponse response,@RequestParam String callback) throws Exception { ModelAndView model = new ModelAndView(); List l=new ArrayList(); for(int i=0;i<2;i++){ Otc otc = new Otc(); otc.setName("测试1"); otc.setId(i+1); l.add(otc); } model.addObject("data", l); return new JSONPObject(callback, model); } 通过JSONPObject实现了简单的jsonp的封装 spring mvc3之后不再需要这种写法了,没有必要自己手动new JSonpObject了。 |
|
发表时间:2014-08-11
ping2010 写道 lingding_cn 写道 1.JSONP
是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。JSON系统开发方法是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串的活动的顺序组合成一个完整的工作进程。 2.看下客户端 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.ajax({ url:'http://localhost/jsonp_test1.json', dataType:"jsonp", jsonp:"jsonpcallback", success:function(data){ var $ul = $("<ul></ul>"); $.each(data,function(i,v){ $("<li/>").text(v["id"] + " " + v["name"]).appendTo($ul) }); $("#res").append($ul); } }); }); </script> </head> <body> </body> </html> <ul></ul> <div id="res"></div> 3.服务端 1 普通servlet String jsonp = request.getParameter("jsonpcallback") String str = "[{""id"":""1"",""name"":""测试1""},{""id"":""2"",""name"":""测试2""}]" str = jsonp + "(" +str+")" response.Write(str) 4.再看spring mvc服务端写法 @RequestMapping(value="/jsonp_test1.json", method=RequestMethod.GET) @ResponseBody public JSONPObject login(HttpServletRequest request,HttpServletResponse response,@RequestParam String callback) throws Exception { ModelAndView model = new ModelAndView(); List l=new ArrayList(); for(int i=0;i<2;i++){ Otc otc = new Otc(); otc.setName("测试1"); otc.setId(i+1); l.add(otc); } model.addObject("data", l); return new JSONPObject(callback, model); } 通过JSONPObject实现了简单的jsonp的封装 spring mvc3之后不再需要这种写法了,没有必要自己手动new JSonpObject了。 有必要自己手动new JSonpObject 那怎么做? |
|
发表时间:2014-09-01
目前我用的也是 返回JSONPObject,楼上说spring mvc3之后不再需要这种写法了,愿闻其详
|