您的位置:首页 > Web前端 > JQuery

ajax跨域:JQuery + Spring MVC3.0

2014-07-29 01:03 651 查看
ajax跨域的基础知识参考:http://www.cnblogs.com/sunxucool/p/3433992.html

兼容跨域和域内访问的最简单解决方法:前端用jsonp,服务器端用 Spring MVC 3.0

前端代码:

$.ajax({
url: "http://localhost:8080/sensing/heatmap/get/shop-1001/2014-07-28/2014-07-28",
dataType:'jsonp',
processData: false,
type:'get',
jsonp:'jsoncallback',
//complete :function(){$("#load").hide();},// AJAX请求完成时隐藏loading提示
success: function(msg){// msg为返回的数据,在这里做数据绑定
alert(msg);
alert("x:"+msg.x+"   y:"+msg.y);
alert("value:"+msg.value);
},
error: function(){
}
});


后端代码:

@RequestMapping(value = "/get/shop-{shopId}/{startDate}/{endDate}")
@ResponseBody
public Object getHeatmap(@PathVariable long shopId, @PathVariable String startDate, @PathVariable String endDate, HttpServletRequest request) {
shopId = getSessionShopId(request, shopId);
Heatmap heatmap = new Heatmap();
Map<String, Object> modelMap = new HashMap<String, Object>();
modelMap.put("x",heatmap.getX());
modelMap.put("y", heatmap.getY());
modelMap.put("value",heatmap.getValue());

String callback = request.getParameter("jsoncallback");
if(callback!=null){//跨域访问
JSONPObject res = new JSONPObject(callback, modelMap);
return res;
}else{//域内访问
return modelMap;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息