论坛首页 Web前端技术论坛

jsonp 后台的springmvc写法

浏览 13587 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-06-30  
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的封装
   发表时间: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了。
0 请登录后投票
   发表时间: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

那怎么做?
0 请登录后投票
   发表时间:2014-09-01  
目前我用的也是 返回JSONPObject,楼上说spring mvc3之后不再需要这种写法了,愿闻其详
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics