尝试将postcode.php文件中的内容加载到#postcodeList
div中,但它无法正常工作(没有任何反应)。我检查了postcode.php文件,它回应了正确的信息。
var loadicecream = document.getElementById("iceCreams");
loadicecream.addEventListener("click", iceAjax, false);
function iceAjax() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","ice-cream-list.php",true);
xmlhttp.send();
document.getElementById("ice-cream-list").innerHTML = xmlhttp.responseText;
}
答案 0 :(得分:0)
您希望查询以异步方式执行(第三个参数以打开函数),然后您同步尝试读取该值。这是在发送查询之前发生的,所以它总是为空。
同步运行加载,或将xmlhttp.onreadystatechange设置为指向处理加载状态的函数。最好的方法是异步执行,因为您不希望在加载数据时阻止用户使用页面。
快速示例,仅处理成功案例:
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("postcodeList").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST","postcode.php",true);
xmlhttp.send();
阅读onreadystatechange的文档,至少你想要处理有超时或一些错误的情况,否则用户不会知道出错了。