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;
}
}