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