zoukankan      html  css  js  c++  java
  • servlet跨域

    后台代码

    package edu.nf.ch01.server;
    
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * @Author Eric
     * @Date 2018/12/3
     */
    @WebServlet("/login")
    public class CorsServer extends HttpServlet {
    
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    /*
            //允许跨域访问,通过response对象写回一些跨域访问的头信息
            resp.setHeader("Access-Control-Allow-Origin","*");
            //允许请求的方法
            resp.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,DELETE");
    */
            String userName = req.getParameter("userName");
            String password = req.getParameter("password");
            resp.setContentType("text/html;charset=utf-8");
            if("admin".equals(userName) && "123".equals(password)){
                resp.getWriter().println("success");
            }else{
                resp.getWriter().println("fail");
            }
        }
    }

    html

    <!DOCTYPE html>
    <html>
        <meta charset="utf-8">
        <link rel="stylesheet" href="//g.alicdn.com/msui/sm/0.6.2/css/sm.min.css">
        <script type='text/javascript' src='//g.alicdn.com/sj/lib/zepto/zepto.min.js' charset='utf-8'></script>
        <script type='text/javascript' src='//g.alicdn.com/msui/sm/0.6.2/js/sm.min.js' charset='utf-8'></script>
        <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
        <head>
            <a class="button button-link button-nav pull-left" href="/demos/card" data-transition='slide-out'>
                  <span class="icon icon-left"></span>
                  返回
            </a>
            <h1 class="title">我的App</h1>
        </head>
        <body>
            <nav class="bar bar-tab">
                <a class="tab-item active" href="#">
                  <span class="icon icon-home"></span>
                  <span class="tab-label">首页</span>
                </a>
                <a class="tab-item" href="#">
                  <span class="icon icon-me"></span>
                  <span class="tab-label"></span>
                </a>
                <a class="tab-item" href="#">
                  <span class="icon icon-star"></span>
                  <span class="tab-label">收藏</span>
                </a>
                <a class="tab-item" href="#">
                  <span class="icon icon-settings"></span>
                  <span class="tab-label">设置</span>
                </a>
              </nav>
            <div class="content">
                  <div class="list-block">
                      <form id="f1">
                        <ul>
                          <!-- Text inputs -->
                          <li>
                            <div class="item-content">
                              <div class="item-inner">
                                <div class="item-title label">Name</div>
                                <div class="item-input">
                                  <input type="text" name="userName" placeholder="Your name">
                                </div>
                              </div>
                            </div>
                          </li>
                          <li>
                            <div class="item-content">
                              <div class="item-inner">
                                <div class="item-title label">Password</div>
                                <div class="item-input">
                                  <input type="password" name="password" placeholder="password">
                                </div>
                              </div>
                            </div>
                          </li>
                        </ul>
                    </form>
                  </div>
                  <div class="content-block">
                    <div class="row">
                      <div class="col-50"><a href="#" class="button button-big button-fill button-danger">取消</a></div>
                      <div class="col-50"><a href="#" id="login" class="button button-big button-fill button-success">登陆</a></div>
                    </div>
                  </div>
            </div>
        </body>
        <script>
            $(function(){
                $("#login").on("click",function(){
                        $.ajax({
                        type:"post",
                        url:"http://localhost:8080/login",
                        data:$("#f1").serialize(),
                        success:function(result){
                            alert(result);
                        }
                    });
                });
            });
        </script>
    </html>

    可以用Filter-CorsFilter类

    package edu.nf.ch01.filter;
    
    
    import javax.servlet.*;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * @author wangl
     * @date 2018-12-03
     */
    @WebFilter("/*")
    public class CorsFilter implements Filter {
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletResponse resp = (HttpServletResponse) servletResponse;
            //允许跨域访问,通过response对象写回一些跨域访问的头信息
            resp.setHeader("Access-Control-Allow-Origin","*");
            //允许请求的方法
            resp.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,DELETE");
            //放行
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void destroy() {
    
        }
    }
  • 相关阅读:
    自定义组件要加@click方法
    绑定样式
    647. Palindromic Substrings
    215. Kth Largest Element in an Array
    448. Find All Numbers Disappeared in an Array
    287. Find the Duplicate Number
    283. Move Zeroes
    234. Palindrome Linked List
    202. Happy Number
    217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/ssjf/p/10102727.html
Copyright © 2011-2022 走看看