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中的逻辑。

原文地址:https://www.cnblogs.com/luoruiyuan/p/6065421.html