簡單的方式解決跨域問題
阿新 • • 發佈:2019-02-13
前後端分離時可能遇到跨域的問題。
如:在前端地址http://www.aaa.com/index.html
中通過ajax請求地址:http://www.bbb.com/service/getUsers
,就會報跨域錯誤。
一種簡單的解決辦法是:在後臺程式碼中增加過濾器,如下:
AccessFilter.java
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ResourceBundle;
/**
* Created by dq on 2017/1/21.
*/
public class AccessFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
httpResponse.setHeader("Access-Control-Allow-Origin" , "*");
httpResponse.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
filterChain.doFilter(servletRequest, httpResponse);
}
@Override
public void destroy () {
}
}
web.xml
<!-- 解決跨域 -->
<filter>
<filter-name>accessFilter</filter-name>
<filter-class>com.xxx.filter.AccessFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>accessFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>