浏览器没有显示来自ajax的结束标记

时间:2014-02-21 19:42:17

标签: javascript html css ajax

我有一个页面,其中包含一个从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"; ?>

0 个答案:

没有答案