zoukankan      html  css  js  c++  java
  • 利用jQuery获取jsonp

    前端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

  • 相关阅读:
    SIFT 特征提取算法总结
    Bilateral Filtering(双边滤波) for SSAO(转)
    Meanshift filter实现简单图片的卡通化效果
    HBM内存介绍
    DRAM 内存介绍(三)
    Arduino教程:MPU6050的数据获取、分析与处理
    pitch yaw roll是什么
    通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ
    关于已知两点经纬度求球面最短距离的公式推导
    [Math]理解卡尔曼滤波器 (Understanding Kalman Filter)
  • 原文地址:https://www.cnblogs.com/cxyj/p/3884934.html
Copyright © 2011-2022 走看看