zoukankan      html  css  js  c++  java
  • JS跨域:2.解决方案之-设置回调参数

    一 服务器端代码

    package com.cn;
    
    import java.util.List;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("/data/inteface")
    public class CSDNTest {
        @RequestMapping("/getdata")
        public void getSolrArticleen(String parameter,
                HttpServletRequest request, HttpServletResponse response) throws Exception{
            String callback = request.getParameter("jsoncallback");
            parameter = new String(parameter.getBytes("iso-8859-1"), "utf-8");
            //获取数据
            DataRepository dataRepository = new DataRepository();
            List<String> primaryItems = dataRepository.getData();
            //把获取的数据转换成字符串,这里用的是FastJson,也可以根据需要用Gson
            String jsonArticle = JSONObject.toJSONString(primaryItems,
                    SerializerFeature.DisableCircularReferenceDetect);
            //把需要输出的服务器端的字符串拼接callback头     
            String json = callback+"(" + jsonArticle + ")";
            //输出到客户端
            GetOut.getWriter(json, response);
        }
    }
    

      

    二 获取输出流的代码

    package com.cn;
    
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.http.HttpServletResponse;
    /**
     * 
     * @Title: GetOut.java
     *
     * @Package: com.cn
     *
     * @Company: WiiMedia
     *
     * @Description: 获取输出流
     *
     * @author: SongJia
     *
     * @date: 2016-06-27 上午11:09:27
     *
     */
    public  class GetOut {
        public static PrintWriter getWriter(String msg,HttpServletResponse response) throws IOException{
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = null;
            out = response.getWriter();
            out.write(msg);
            out.flush();
            out.close();
            return out;
        }
    }
    

      

    三 客户端请求数据代码

    <script type="text/javascript">
        function AcquireData() {
            $.ajax({   
                async:false,   
                url: "http://m.lecoonginfo.com/data/inteface/getdata,  // 跨域URL  
                type: 'GET',   
                dataType: 'jsonp',   
                jsonp: 'jsoncallback', //默认callback  
                timeout: 5000,   
                    success: function (json) {
                     //客户端jquery预先定义好的callback函数,
                     //成功获取跨域服务器上的json数据后,
                     //会动态执行这个callback函数   
                    console.log(json);
                    }
                }
            });   
    </script>
    

      

  • 相关阅读:
    asp.net core 3.1 CreateDefaultBuilder默认启动解析
    VS2019安装扩展成功后,扩展不显示(未启用,也找不到选项)
    Redis持久化必知必会
    调试错误,请回到请求来源地,重新发起请求
    复制DataRow行 插入DataTabel
    mysql查看被锁住的表
    RedisHelper帮助类(转)
    C#接口的作用实例解析
    ASP.NET CORE 启动过程及源码解读(转)
    医疗行业&产品/技术交流群
  • 原文地址:https://www.cnblogs.com/Matchman/p/7380042.html
Copyright © 2011-2022 走看看