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() {
    
        }
    }
  • 相关阅读:
    Restful api 返回值重复的问题
    fastDFS遇到的并发问题recv cmd: 0 is not correct, expect cmd: 100
    忽略警告@SuppressWarnings的用法
    Mysql 一些命令记录
    python 操作excel实现替换特定内容
    python 提取目录中特定类型的文件
    python使用tkinter无法获取输入框的值
    python使用tkinter无法给顶层窗体的输入框设定默认值
    游戏基础知识第一弹
    python 3.7.4 安装 opencv
  • 原文地址:https://www.cnblogs.com/ssjf/p/10102727.html
Copyright © 2011-2022 走看看