前段时间用JSONP解决了跨域问题,现在不用了,把代码思路记下来,今后说不定还用得上。
JS代码
//查询公告数据
function recentpost(){$.getJSON(cmsUrl+"/post/recentpost.json?jsoncallback=?",{count:count,categoryid:categoryid},function(data){
//
});
}
更多描述,来自jquery 文档。
jQuery.getJSON(url,[data],[callback])
概述
通过 HTTP GET 请求载入 JSON 数据。
参数
示例
描述:
从 Flickr JSONP API 载入 4 张最新的关于猫的图片。
HTML 代码:
<div id="images"></div>
jQuery 代码:
$.getJSON("http://api.flickr.com/services/Feeds/photos_public.gne?tags=cat&tagmode=any&format =json&jsoncallback=?",function(data){ $.each(data.items,function(i,item){ $("<img/>").attr("src",item.media.m).appendTo("#images"); if ( i == 3 ) return false; }); });
描述:
从 test.js 载入 JSON 数据并显示 JSON 数据中一个 name 字段数据。
jQuery 代码:
$.getJSON("test.js",function(json){ alert("JSON Data: " + json.users[3].name); });
描述:
从 test.js 载入 JSON 数据,附加参数,显示 JSON 数据中一个 name 字段数据。
jQuery 代码:
$.getJSON("test.js",{ name: "John",time: "2pm" },function(json){ alert("JSON Data: " + json.users[3].name); });
Java代码
@RequestMapping(value = "recentpost")
public void recentPost(Integer categoryid,String jsoncallback,
Integer count,Model model,HttpServletResponse response) {
if (categoryid == null) {
categoryid = DEFAULT_CATEGORY;
}
List<Post> list = postService.listRecent(categoryid,count);
// JSONObject json = new JSONObject();
// json.put("list",list);
// String str=json.toJSONString();
// model.addAttribute("callback",list);
String str = JSONObject.toJSONString(list);
str = jsoncallback + "(" + str + ")";
super.returnMessage(response,str);
}