zoukankan      html  css  js  c++  java
  • JAVA 跨域请求 不用JSONP 不用CORS

    @RequestMapping(value = "/crossDomain")
    @ResponseBody
    public Object crossDomain(ServletRequest request, ServletResponse response) {
    logger.info(ZhongYiYaoAreaController.class + "跨域请求data开始");
    PageData pd = this.getPageData();
    String entityStr = "";
    PageData result = null;
    try {
    // 创建httpClient 对象
    HttpClient httpClient = new DefaultHttpClient();
    // 根据url 创建请求对象
    HttpPost httpPost = new HttpPost(pd.getString("url"));
    // 创建参数对象 传入请求对象中
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    for (Object key : pd.keySet()) {
    params.add(new BasicNameValuePair(key.toString(), pd.get(key).toString()));
    }
    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "utf-8");
    httpPost.setEntity(entity);
    // 发出请求得到响应
    HttpResponse httpResponse = httpClient.execute(httpPost);
    // 接收到响应中的数据体 转化成json字符串
    entityStr = EntityUtils.toString(httpResponse.getEntity());
    result = new PageData();
    Map jsonMap = null;
    ArrayList jsonList = null;
    if (StringUtils.isBlank(entityStr)) {
    logger.error(ZhongYiYaoAreaController.class + "跨域请求异常jsonStr为空");
    throw new Exception("jsonStr为空");
    }
    // 根据objectMapper 通过反射 将jsonStr转换成Map
    ObjectMapper objectMapper = new ObjectMapper();
    if(pd.getString("url").indexOf("queryHisHerbsInfo") !=-1){
    jsonList = objectMapper.readValue(entityStr, ArrayList.class);
    if(jsonList.size()>0){
    result.put("data", jsonList.get(0));
    result.put("error", null);
    result.put("success", true);
    }else{
    result.put("data", new ArrayList());
    result.put("error", "跨域请求发生异常");
    result.put("success", false);
    }
    }else{
    jsonMap = objectMapper.readValue(entityStr, Map.class);
    if(jsonMap.get("error")==null || jsonMap.get("error")=="null"){
    result.put("data", jsonMap.get("data"));
    result.put("error", jsonMap.get("error"));
    result.put("success", jsonMap.get("success"));
    }else{
    result.put("data", new ArrayList());
    result.put("error", jsonMap.get("error"));
    result.put("success", false);
    }
    }

    } catch (Exception e) {
    result.put("data", new ArrayList());
    result.put("error", "跨域请求发生异常");
    result.put("success", false);
    logger.error(ZhongYiYaoAreaController.class + "跨域请求异常");
    logger.error(e.getMessage());
    return AppUtil.returnObject(new PageData(), result);
    } finally {
    logger.info(ZhongYiYaoAreaController.class + "跨域请求结束");
    }
    return AppUtil.returnObject(new PageData(), result);
    }
  • 相关阅读:
    Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
    [Pulgin] jQuery插件之ajaxFileUpload
    [Plugin] JQuery.uploadify上传文件插件的使用详解For ASP.NET
    [Plugin] 文件上传利器SWFUpload使用指南
    [HTML] 微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能
    [JavaEE] IBM
    [TB-Technology] 淘宝在数据处理领域的项目及开源产品介绍
    [Hacker] 端口大全
    [.Net] DataTable添加列和行的三种方法
    [.Net] 导出Excel中身份证等数字串的解决方式
  • 原文地址:https://www.cnblogs.com/g-yang/p/9548094.html
Copyright © 2011-2022 走看看