jsonp使用,spring4.x对jsonp的支持

Posted 一万年以前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsonp使用,spring4.x对jsonp的支持相关的知识,希望对你有一定的参考价值。

1.Java中接口

@RequestMapping("/token/{token}")  
@ResponseBody  
public Object getUserByToken(@PathVariable String token, String callback) {  
    Person per = null;  
    try {  
        per = userService.getPerson(token);  
    } catch (Exception e) {  
        e.printStackTrace();  
        per = ExceptionUtil.getStackTrace(e);  
    }  
      
    //判断是否为jsonp调用  
    if (StringUtils.isBlank(callback)) {  
        return per;  
    } else {  
        MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(per);  
        mappingJacksonValue.setJsonpFunction(callback);  
        return mappingJacksonValue;  
    }  
   
}  

  说明:MappingTacksonValue为spring4.x以后支持,依赖包为spring-web-4.x.x.RELEASE.jar

2.前台调用

$.ajax({  
    url : "http://localhost:8084/user/token/" + _ticket,  
    dataType : "jsonp",  
    type : "GET",  
    data:{  
        callback : ‘test‘  
    },  
    success : function(data){  
        console.log(data);  
    }  
});  
  
function test(data){  
<span style="white-space:pre">    </span>console.log(data);  
}  

  说明:如果传了callback参数,返回结果后调用前台相应的js方法,否则执行success中的逻辑。

以上是关于jsonp使用,spring4.x对jsonp的支持的主要内容,如果未能解决你的问题,请参考以下文章

ServiceStack - 对 JSONP 请求使用 gzip/deflate 压缩

对 JSONP 请求的工作方式感到困惑

如何使用 jquery 对 api 进行 jsonp 调用

对 Python Bottle 的跨域 Angular JSONP 请求

Python获取jsonp数据

springmvc 的@ResponseBody 如何使用JSONP?