跨域请求返回jsonp 乱码三个解决api

来源:互联网 发布:做淘宝网店 编辑:程序博客网 时间:2024/06/15 06:01

跨域是什么:跨域说白就是一个web项目访问另一个web项目,前提是域名或者端口号不同.

第一个:使用jackson

@RequestMapping(value="/itemcat/all")

@ResponseBody
public  JSONPObject getItemcatResult(String callback){
System.out.println(callback);

ItemcatResult itemcatResult = itemcatNode.getItemcatResult();

JSONPObject jsonp=new JSONPObject(callback, itemcatResult);



return jsonp;

}

第二个: 返回String json 字符为utf-8 不加 下面红色覆盖的语句返回的是乱码 ,

@RequestMapping(value="/itemcat/all",produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public  String getItemcatResult(String callback){
System.out.println(callback);

ItemcatResult itemcatResult = itemcatNode.getItemcatResult();
String json=JsonUtils.objectToJson(itemcatResult);
String call=callback+"("+json+")";



return call;

}

第三个: 使用Spring 提供的

@RequestMapping(value="/itemcat/all")
@ResponseBody
public  MappingJacksonValue getItemcatResult1(String callback){
System.out.println(callback);

ItemcatResult itemcatResult = itemcatNode.getItemcatResult();

MappingJacksonValue jack=new  MappingJacksonValue(itemcatResult);

jack.setJsonpFunction(callback);


return jack;
}
原创粉丝点击