• cors解决跨越问题


    转载于http://www.cnblogs.com/jiangwz/p/8142740.html

    Cross-Origin Resource Sharing(CORS)跨来源资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以在不支持 CORS 的老旧浏览器上运作。现代的浏览器都支持 CORS。

    配置过滤器

    public class SimpleCORSFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("SimpleCORSFilter启动!!!===========");
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            HttpServletResponse res = (HttpServletResponse)response;
            res.setHeader("Access-Control-Allow-Origin", "*");
            res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
            res.setHeader("Access-Control-Max-Age", "3600");
            res.setHeader("Access-Control-Allow-Headers", "x-requested-with");
            chain.doFilter(request, response);
        }
    
        @Override
        public void destroy() {
            System.out.println("SimpleCORSFilter结束!!!===========");
        }
    
    }

    配置web.xml文件:

     <!-- cors解决跨域访问问题 -->
        <filter>
            <filter-name>cors</filter-name>
            <filter-class>com.wazn.learn.util.SimpleCORSFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>cors</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

    调用的方法

     @RequestMapping("select")
        @ResponseBody
        public JSONObject select(int page , int limit , String title){
            JSONObject jo = new JSONObject();
            Map<String,Object> map = newsService.select(page,limit,title);
            jo.put("code",0);
            jo.put("msg", true);
            jo.put("data", map.get("data"));
            jo.put("count", map.get("count"));
            return jo;
        }

    前台接受

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        </head>
        <body>
            <h1>ajax测试接口</h1>
        </body>
        <script type="text/javascript">
            $(function() {
                $.ajax({
                    type:"post",
                    url:"http://192.168.1.113/basepro/knowledge/news/select",
                    data:{
                        page:1,
                        limit:1000
                    },
                    dataType:"json",//返回的
                    success:function(data) {
                        alert(data.msg);       
                    },
                    error:function(msg) {
                        console.log(msg);
                    }
                });
            });
        </script>
    </html>

    返回图片

  • 相关阅读:
    Visual Source Safe的使用方法
    二十道经典C#面试题
    C#中转义符
    在自己迷惑的时候,提醒自己
    C#中多态
    C#重载和重写
    DataTable定义
    C#怎么调用方法
    mysql数据类型——字符串char(m)和varchar(m)
    mysql数据类型——时间类型
  • 原文地址:https://www.cnblogs.com/NCL--/p/8301129.html
Copyright © 2020-2023  润新知