将Servlet变量传递给Javascript
我有一个JSP页面,用于将一些数据提交给将Servlet变量传递给Javascript,javascript,ajax,jsp,servlets,Javascript,Ajax,Jsp,Servlets,我有一个JSP页面,用于将一些数据提交给HTTPServelet。在servlet中成功完成任务后,我需要显示一个警报,因此我有一个JavaScript AJAX函数,它在JSP页面的onSubmit事件中执行。但是,当我单击submit按钮时,AJAX函数不会与它一起执行 下面是我的Javascript函数: function alerts(servlet) { var xhr = new XMLHttpRequest(); xhr.open("POST", servlet
HTTPServelet
。在servlet中成功完成任务后,我需要显示一个警报,因此我有一个JavaScript AJAX函数,它在JSP页面的onSubmit
事件中执行。但是,当我单击submit按钮时,AJAX函数不会与它一起执行
下面是我的Javascript函数:
function alerts(servlet) {
var xhr = new XMLHttpRequest();
xhr.open("POST", servlet, true);
console.log("connected to "+servlet);
xhr.send(null);
xhr.onreadystatechange = function() { //this function does not execute
if (xhr.readyState === 4) {
if (xhr.status === 200) {
content = xhr.responseText;
var objects = JSON.parse(content);
console.log(objects);
var elemant = document.getElementById("tblObjects");
var child = elemant.children;
var childLength = child.length;
if (0 < child.length) {
for (i = 0; i < childLength; i++) {
deleteElamant("tblObj");
}
}
}
}
};
}
var objects=JSON.parse(内容)
和response.setContentType(“text/html;charset=UTF-8”)
不属于一起。//此函数不执行
-您如何确定这一点?尝试使用jquery,代码将更小,更易于使用understand@Quentin我在Firefox调试控制台中设置了一些断点,并对其进行了逐行调试。它不会在ReadyStateChange上进入内部。我有一个类似的函数,用于对文本框输入进行后台搜索。它运行时没有任何问题。@Quentin我在servlet中将jsonArray
作为String
传递。所以,我使用response类型作为text/html是一个问题吗。?
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try {
//Do somethings inside Servlet
response.getWriter().write("my alert messege to JavaScript");
RequestDispatcher rd = request.getRequestDispatcher("/NextServlet");
rd.forward(request, response);
} catch (Exception ex) {
}
}