前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前后端分离ssm配置跨域

前后端分离ssm配置跨域

原创
作者头像
道可道非常道
修改2019-06-24 10:04:22
6070
修改2019-06-24 10:04:22
举报
文章被收录于专栏:Java Web学习Java Web学习

前后端分离开发需要跨域,之前只会pringboot跨域,只需要一个配置类即可,下面记录一下ssm的配置

### 三个文件需要添加配置

![](https://user-gold-cdn.xitu.io/2019/6/22/16b7c7ec4be7a8e6?w=1920&h=1001&f=png&s=1069754)

## SimpleCORSFilter.java实现Filte

```

public class SimpleCORSFilter implements Filter {

private boolean isCross = false;

@Override

public void destroy() {

isCross = false;

}

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

if (isCross) {

HttpServletRequest httpServletRequest = (HttpServletRequest) request;

HttpServletResponse httpServletResponse = (HttpServletResponse) response;

System.out.println("拦截请求: " + httpServletRequest.getServletPath());

httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");

httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

httpServletResponse.setHeader("Access-Control-Max-Age", "0");

httpServletResponse.setHeader("Access-Control-Allow-Headers",

"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");

httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");

httpServletResponse.setHeader("XDomainRequestAllowed", "1");

}

chain.doFilter(request, response);

}

@Override

public void init(FilterConfig filterConfig) throws ServletException {

String isCrossStr = filterConfig.getInitParameter("IsCross");

isCross = isCrossStr.equals("true") ? true : false;

System.out.println(isCrossStr);

}

```

## dispatcher-servlet.xml(springMVC的配置文件)

```

<!-- 接口跨域配置-->

<mvc:cors>

<mvc:mapping path="/**"

allowed-origins="*"

allowed-methods="POST, GET, OPTIONS, DELETE, PUT"

allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"

allow-credentials="true" />

</mvc:cors>

```

## web.xml

```

<!-- 跨域请求 -->

<filter>

<filter-name>SimpleCORSFilter</filter-name>

<filter-class>com.maxcore.config.SimpleCORSFilter</filter-class>

<init-param>

<param-name>IsCross</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>SimpleCORSFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

```

## 完毕

>[github](https://github.com/pbw123/)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档