記Spring與跨域
跨域
簡單理解就是跨域名 (ip+端口)
在 52liming.com 中向demo.com中發起Ajax請求, 出于安全考慮會進行攔截
參考:
Maven中引入CORS Filter
Spring4.0之前 CORS
CORS 跨域資源共享 Cross-Origin Resource Sharing
實現攔截器方式, (因為這次項目中是用的的spring4.0.2, 所以記錄下來)
類似白名單
1. Filter 的實現類 CORSFilter.java
package com.hs.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
/**
* @ClassName: CORSFilter
* @Description: 跨域過濾,正式部署時如果相同域名下建議不使用
* @author xiaoming
* @date 2018/06/29 16:59:46
*/
public class CORSFilter implements Filter {
@Override
public void init(FilterConfig var1) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.addHeader("Access-Control-Allow-Origin", "*");
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy() {}
}
2. web.xml
<filter>
<filter-name>CORSFilter</filter-name>
<filter-class>com.xx.filter.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORSFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Spring 4.2以后
跨域直接通過注解方式, 因為沒有實際使用暫不做說明, 網上有很多

浙公網安備 33010602011771號