之所以会出现跨域请求,是由于浏览器同源策略所出现的结果,直接写实践内容,更多理论知识可以上度娘
Filter解决跨域问题
public class AccessFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse res = (HttpServletResponse) response;
res.addHeader("Access-Control-Allow-Origin", "*");
res.addHeader("Access-Control-Allow-Methods", "*");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
res.addHeader("Access-Control-Allow-Origin", "*");
*:代表所有域名都可以请求
"http://localhost:8080":只允许该域名请求
res.addHeader("Access-Control-Allow-Methods", "*");
*:所有方法都可以请求
GET:只有GET可以请求
<filter>
<filter-name>AccessFilter</filter-name>
<filter-class>com.yangzinan.api.filter.AccessFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AccessFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>