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:8080/tbk/static.do",
           dataType : "jsonp",
           jsonp: 'callback', //回调调用方法参数
           type : "GET",
           data:{
              token : '123'
           },
           success : function(result){
              console.log(result);  
           }
  })

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

原文地址:https://www.cnblogs.com/nsw2018/p/6509487.html