0

I am facing strange problem, I am calling Java Servlet via Ajax request, when I call it synchronously it works all great, but whenever I send asynchronous request from ajax to servlet, ajax never receives response.

Ajax code:

          <script type="text/javascript">
                function ajaxSyncRequest(reqURL) {
                     var xmlhttp = new XMLHttpRequest();

                     xmlhttp.open("POST", reqURL, true); //when false here everything works

                     xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
                     xmlhttp.send('server=test');
                     if (xmlhttp.readyState == 4) {
                         if (xmlhttp.status == 200) {
                             document.getElementById("1").innerHTML = xmlhttp.responseText;
                     } else {
                         document.getElementById("1").innerHTML = "Could not connect to server!";
                     }
                  }
                  setTimeout(function(){ ajaxSyncRequest("ConsoleGenerator"); }, 1500);
                }
                function init() {
                    ajaxSyncRequest("ConsoleGenerator");
                }
                init();
         </script>";

And my servlet:

public class ConsoleGenerator extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);
    String server = request.getParameter("server");
    System.out.println("ConsoleRequest: " + server);
    PrintWriter out = response.getWriter();
    out.print("example output");
    out.flush();
}

@Override
protected void doPost(final HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(request, response);
}

}
Welite
  • 161
  • 4
  • 17

0 Answers0