使用AJAX请求JAVA服务器,发现status=0,于是百度了下,是由于跨域引起的。
JAVA服务端解决代码如下:
public class CharacterEncodingFilter implements Filter {
private String encoding;
@Override
public void destroy() {
this.encoding = null;
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// 设置编码
arg0.setCharacterEncoding(encoding);
// 解决前端请求跨域问题!
HttpServletResponse httpResponse = (HttpServletResponse) arg1;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
httpResponse.setHeader("Access-Control-Allow-Methods",
"POST, GET, OPTIONS, DELETE");
httpResponse.setHeader("Access-Control-Max-Age", "3600");
httpResponse.setHeader("Access-Control-Allow-Headers",
"Origin,X-Requested-With,Content-Type, Accept, Authorization");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
arg2.doFilter(arg0, httpResponse);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
this.encoding = arg0.getInitParameter("encoding");
}
}