使用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");
}
}