ajax跨域:JQuery + Spring MVC3.0

来源:互联网 发布:js获取a标记的href 编辑:程序博客网 时间:2024/05/01 04:05

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}")@ResponseBodypublic 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;}}


0 0