zoukankan      html  css  js  c++  java
  • spring mvc跨域(post)--filter方案

    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    public class CORSFilter implements Filter {
    
        public void CORSFilter(){
    
        }
    
        @Override
        public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException,ServletException {
            HttpServletResponse httpResp = (HttpServletResponse) resp;
            HttpServletRequest httpReq = (HttpServletRequest) req;
    
            httpResp.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, OPTIONS");
            httpResp.setHeader("Access-Control-Allow-Origin", "*");
            httpResp.setHeader("Access-Control-Allow-Credentials","true");
            if (httpReq.getMethod().equalsIgnoreCase("OPTIONS")) {
                httpResp.setHeader("Access-Control-Allow-Headers",
                        httpReq.getHeader("Access-Control-Request-Headers"));
            }
            chain.doFilter(req, resp);
        }
    
       
        @Override
        public void init(FilterConfig arg0) throws ServletException {
        }
    
        @Override
        public void destroy() {
        }
    }
      <filter>
        <filter-name>corsFilter</filter-name>
        <filter-class>com.sung.risk.filter.CORSFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>corsFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

    controller:

        @ResponseBody
        @RequestMapping(value = "/getNewsOfficial")
        public JSONObject getNewsOfficial(HttpServletRequest request){
            JSONObject jsonObject1 = new JSONObject();
            String currentPage = request.getParameter("currentPage");
            String pageSize = request.getParameter("pageSize");
            jsonObject1.put("currentPage",currentPage);
            jsonObject1.put("pageSize",pageSize);
            return  jsonObject1;
        }

    前端页面:

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>新闻动态</title>
        <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
    </head>
    
    <body class="body-blackBg">
    </body>
    <script src="jquery.min.js"></script>
    <script>
    
        $(document).ready(function () {
        $.ajax({
                type: "POST",
                dataType: "json",
                url: "http://localhost:8080/newsofficial/getNewsOfficial.do",
                data:{currentPage:0, pageSize:5},
                success: function (data) {
                    console.log(data);
                },
                error: function (data) {
    
                }
            });
            $.ajax({
                async: false,
                type: 'POST',
                data:{currentPage:0, pageSize:5},
                dataType: "json",
                url: "http://localhost:8080/newsofficial/getNewsOfficial.do",//请求的action路径
                error: function (msg) {//请求失败处理函数
                },
                success: function (data) { //请求成功后处理函数。
                    
                }
            })
        })
        
        
        
    </script>
    </html>

    这个方案,前端发送的是非json格式。

    json格式其实差不多,留待下篇

  • 相关阅读:
    Angular项目在npm install之后用ng serve启动发生错误
    (TODO)Angular的通道
    使用React+redux+Node.js+MongoDB开发(二)--使用redux
    Angular中使用DomSanitizer防范跨站脚本攻击类(XSS)的安全问题
    使用React+redux+Node.js+MongoDB开发(一)
    数组的数字和非数字下标的区别
    echarts绘制饼图时的一点特殊设置
    Angular项目中迭代生成的树,激活选中的节点,并将节点数据发送到父节点
    Ubuntu 设定壁纸自动切换的shell脚本
    Navicat for mysql linux 破解方法
  • 原文地址:https://www.cnblogs.com/grey-wolf/p/7887424.html
Copyright © 2011-2022 走看看