jsonp进行跨域访问,回调函数作为参数返回值的二种类型
第一种是返回字符串(大多是json串),这种方式需要我们自己封装一下结果的格式:callback+“(”+json +");";
@RequestMapping(value="/item/list",
produces=MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
@ResponseBody
public String getItemCatList(String callback) {
CatResult catResult = itemCatService.getItemCatList();
//把pojo转换成字符串
String json = JsonUtils.objectToJson(catResult);
//拼装返回值
String result = callback + "(" + json + ");";
return result;
}
第二种是返回object,利用jackjson提供的封装类来返回数据
@RequestMapping("/item/list")
@ResponseBody
public Object getItemCatList(String callback) {
CatResult catResult = itemCatService.getItemCatList();
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(catResult);
mappingJacksonValue.setJsonpFunction(callback);
return mappingJacksonValue;
}