首页 > Web开发 > 详细

利用jQuery获取jsonp

时间:2014-08-01 15:45:31      阅读:371      评论:0      收藏:0      [点我收藏+]

前端js代码:

$.ajax({
   url: ‘http://localhost:8080/webApp/somejsonp‘,
   dataType: "jsonp",
   jsonp: "callback",
   success: function (data) {
       console.log(data)
   }
})

服务端代码:

本例采用java实现  使用的springmvc伪代码

 private boolean ifJsonp(HttpServletRequest request,HttpServletResponse response,Map<String, Object> map) throws Exception{
  // jsonp
  String callback = request.getParameter("callback");
  if(StringUtils.isNotBlank(callback)){
   callback = callback.trim();
   request.setAttribute("data", map);
   request.setAttribute("callback", callback);
   request.getRequestDispatcher("/jsonpData").forward(request, response);
   return true;
  }
  return false;
 }
@RequestMapping("/jsonpData")
 public @ResponseBody String genJasonData(HttpServletRequest request,HttpServletResponse response){
  Object data = request.getAttribute("data");
  String callback = (String) request.getAttribute("callback");
  if(data==null||StringUtils.isBlank(callback)){
   return "{\"result\":\"-1\",\"message\":\"未知错误\"}";
  }
  try {
   response.setContentType("application/x-javascript;charset=UTF-8");
   response.setCharacterEncoding("UTF-8");
   response.getOutputStream().write((callback+"(").getBytes());
   JsonGenerator generator = this.objectMapper.getJsonFactory().createJsonGenerator(response.getOutputStream(), JsonEncoding.UTF8);
   this.objectMapper.writeValue(generator, data);
   response.getOutputStream().write((")").getBytes());
  } catch (Exception e) {
   return "{\"result\":\"-1\",\"message\":\"未知错误\"}";
  }
  return null;
 }

服务端使用:

    @RequestMapping(value = "/somejsonp")
    public Map<String, Object> findRcbChannelTabsInRecordID(HttpServletRequest request,HttpServletResponse response) throws Exception{
        List list = new ArrayList();
        Map<String, Object> map = new HashMap<String, Object>();try {
            list = service.queryData(map);//要查询的数据  
        } catch (Throwable t) {
           
        }
        
        map.put("Data", list);// jsonp
        if(ifJsonp(request, response, map)){
            return null;
        }
        
        return map;
    }

 

来源更多请参考:http://www.cnblogs.com/lemontea/archive/2012/12/11/2812268.html

利用jQuery获取jsonp,布布扣,bubuko.com

利用jQuery获取jsonp

原文:http://www.cnblogs.com/cxyj/p/3884934.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!