我有一个页面,其中包含一个从ajax调用中获取HTML的简单表。有时我希望ajax响应中的HTML关闭div和td标记并启动表中的另一列。但是,浏览器只是没有注册那些结束标记。我在控制台中显示ajax响应,它们就在那里。我认为这是ajax生活中的一个事实,但它看起来确实应该有效。为什么这不起作用,有没有办法使它工作?
<html>
<script>
function ajaxRequest() {
try {
var request = new XMLHttpRequest()
} catch(e1) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP")
} catch(e2) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP")
} catch(e3) {
request = false
}
}
}
return request
}
function callAjax(module, tag) {
page = module + ".php"
request = new ajaxRequest()
request.open("GET", page, true)
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
request.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 200) {
if (this.responseText != null) {
console.log("callAjax retrieved:\n" + this.responseText)
document.getElementById(tag).innerHTML = this.responseText
} else alert("Ajax Error: No data received")
} else alert("Ajax error: " + this.statusText)
}
}
request.send()
}
</script>
<body onload='javascript: callAjax("returnXYZ", "main")'>
<table border=1>
<tr>
<td>abc</td>
<td><div id='main'></div></td>
</tr>
</table>
</body>
</html>
并且returnXYZ.php只有......
<?php echo "\nLMNOP</div></td><td>XYZ"; ?>