在我的Java Web应用程序中,我调用ajax请求,如下所示。
<script type="text/javascript">
function selectTableHandler() {
console.log("indise selectTableHandler");
var xhttp = new XMLHttpRequest();
var selectedTable = document.getElementById('selectTable').value;
alert(selectedTable);
xhttp.open("GET", "populateTableColumList.action?tablename="
+ selectedTable, true);
xhttp.send();
console.log(xhttp.responseText);
}
</script>
Action正在调用并返回状态代码200,如下所示。
Remote Address:[::1]:8080
Request URL:http://localhost:8080/ReportBuilder/populateTableColumList.action?tablename=films
Request Method:GET
Status Code:200 OK
但是,它给出了XMLHttpRequest的空响应。行 console.log(xhttp.responseText); 不打印任何内容。此外,控制台日志中没有错误。
任何建议都将不胜感激。
由于
答案 0 :(得分:4)
您需要添加一个回调函数来获取ajax请求的结果。
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
console.log(xhttp.responseText);
}
}
答案 1 :(得分:2)
您的ajax请求是异步的。这意味着它会在稍后的某个时间返回结果。您需要为onload
或onreadystatechange
安装事件处理程序才能获得结果。
有很多关于如何执行此操作的Ajax教程。以下是一些有用的参考资料:
https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
答案 2 :(得分:2)
如果你想使用vanilla js,你必须附加将处理响应的事件处理程序l = l[-1:] + l[0:-1]
,但是我的建议而不是使用vanilla js,使用像onreadystatechange
这样的库来启动ajax请求。它将更容易,它将在所有类型的浏览器上运行没有问题。见here。如果你想要vanilla js,这里有一个示例片段:
jQuery