最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springmvc ajax跨域請(qǐng)求處理方法實(shí)例詳解

 更新時(shí)間:2017年10月16日 10:24:51   投稿:mrr  
這篇文章主要介紹了Springmvc ajax跨域請(qǐng)求處理方法實(shí)例詳解,需要的朋友可以參考下

上次給一個(gè)網(wǎng)站寫網(wǎng)站  前后端分離 最后跪在ajax跨域上面了  自己在網(wǎng)上找了個(gè)方法  親試可用  記錄一下

寫一個(gè)類  繼承HandlerInterceptorAdapter

package com.util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class CommonInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept");
response.setHeader("Access-Control-Allow-Credentials", "true"); // 是否允許瀏覽器攜帶用戶身份信息(cookie)
return true;
}
}

然后在xml里面配置一下路徑

<mvc:interceptors>
<!--過濾所有請(qǐng)求,處理跨域請(qǐng)求問題 -->
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.util.CommonInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

 這樣就可以了  不過有篇博客說針對(duì)簡(jiǎn)單跨域沒問題。但是針對(duì)post+json請(qǐng)求卻失敗,提示跨域失敗。所以下面記錄一下他的解決方式

建立一個(gè)類  繼承 OncePerRequestFilter

public class CrossFilter extends OncePerRequestFilter {
  @Override
  protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
    if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) {
      // CORS "pre-flight" request
      response.addHeader("Access-Control-Allow-Origin", "*");
      response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
      response.addHeader("Access-Control-Allow-Headers", "Content-Type");
      response.addHeader("Access-Control-Max-Age", "1800");//30 min
    }
    filterChain.doFilter(request, response);
  }
}

web.xml里面設(shè)置一下

<filter>
  <filter-name>cors</filter-name>
  <filter-class>cn.***.filter.CrossFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>cors</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

然后就可以了  上述方式為spring3.0版本  如果是4.0版本可以用下面方式(無測(cè))

xml里面配置

  <mvc:cors>
    <mvc:mapping path="/**" allowed-origins="*" allow-credentials="true" max-age="1800" allowed-methods="GET,POST,OPTIONS"/>
  </mvc:cors>

PS:使用SpringMVC解決Ajax跨域問題

package com.mengyao.system.filter;
 import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
/**
 * CORSFilter 解決跨域問題
 * @author mengyao
 *
 */
@Component
public class InitCORSFilter extends OncePerRequestFilter {
  private Logger logger = LoggerFactory.getLogger(InitCORSFilter.class);
  public InitCORSFilter() {
    logger.info("==== 初始化系統(tǒng)允許跨域請(qǐng)求 ====");
  }
  /**
   * 解決跨域:Access-Control-Allow-Origin,值為*表示服務(wù)器端允許任意Domain訪問請(qǐng)求
   */
  @Override
  protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
      throws ServletException, IOException {
    if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) {
      response.addHeader("Access-Control-Allow-Origin", "*");
      response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
      response.addHeader("Access-Control-Allow-Headers", "origin, content-type, accept, x-requested-with, sid, mycustom, smuser");
      response.addHeader("Access-Control-Max-Age", "1800");//30 min
    }
    filterChain.doFilter(request, response);
  }
}

好了,代碼到此結(jié)束!

總結(jié)

以上所述是小編給大家介紹的Springmvc ajax跨域請(qǐng)求處理方法實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

中阳县| 迭部县| 合作市| 许昌县| 贵溪市| 寻乌县| 柳林县| 文水县| 城市| 罗甸县| 遵义县| 宣城市| 阿拉善右旗| 额济纳旗| 湖北省| 炉霍县| 固安县| 体育| 安塞县| 航空| 侯马市| 涿州市| 松江区| 潞城市| 平罗县| 乌什县| 措勤县| 白城市| 辽宁省| 肇庆市| 离岛区| 开封县| 门头沟区| 怀安县| 化州市| 龙岩市| 自治县| 巴林左旗| 万安县| 蓬溪县| 岑溪市|