zoukankan      html  css  js  c++  java
  • restful风格下的ajax跨域问题的解决

    Ajax跨域请求时,如果设置Header的ContentType为application/json,会分两次发送请求
    一次先发送Method为OPTIONS的请求到服务器,这个请求会询问服务器支持哪些请求方法(GET,POST等)
    一次先发送Method为OPTIONS的请求到服务器,这个请求会询问服务器支持哪些请求方法(GET,POST等)
    等到这个请求返回后,如果原来我们准备发送的请求符合服务器的规
    则,那么才会继续发送第二个请求

    protected boolean preHandle(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {
      HttpServletRequest request = (HttpServletRequest) servletRequest;
      HttpServletResponse response = (HttpServletResponse) servletResponse;
      if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
      response.setStatus(HttpStatus.OK.value());
      response.addHeader("Access-Control-Allow-Origin", "*");
      response.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS, TRACE, HEAD, PATCH");
      response.addHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
      return false;
    }
      return super.preHandle(request, response);
    }
  • 相关阅读:
    重剑无锋
    PHP session用redis存储
    Beego 和 Bee 的开发实例
    谁是最快的Go Web框架
    Go语言特点
    计算机组成原理之机器
    Elasticsearch 健康状态处理
    Elasticsearch 的一些关键概念
    Elasticsearch 相关 api 操作
    Elasticsearch 在 windows 和 ubuntu 下详细安装过程
  • 原文地址:https://www.cnblogs.com/lwmp/p/6253501.html
Copyright © 2011-2022 走看看