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);
}
}