通过ajax将文件读入div。我想我错过了一些小事

时间:2009-11-17 01:06:32

标签: html ajax file-read

我正在做一些非常简单的事情,但它不起作用......也许我错过了一些东西。

我需要通过ajax读取文本文件并进入div。我可以通过ajax轻松写入文件,但不能读取。这就是我所拥有的:

function ajaxLoader(url) {
  if(document.getElementById) {
    var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  }
  if(x) {
    x.onreadystatechange = function() {
      if(x.readyState == 4 && x.status == 200) {
        el = document.getElementById('content');
        el.innerHTML = x.responseText;
      }
    }

    x.open("GET",url, true);
    x.send(null);
  }
}

<a class="blocklink" href="#" id="readg" onclick="ajaxLoader('guestBook.txt')">Read The Guestbook</a></p>

<div id="content" style="width:600px;">

我整天都被困在这一天。我可以使用所有相同的代码,并将常规html文件输出到div,但不输出此.txt文件。 txt文件具有所需的所有读写权限。谢谢!

马库斯

4 个答案:

答案 0 :(得分:0)

尝试删除if(document.getElementById)

您能提醒您的.responseText财产吗?它使用同步模式吗?

答案 1 :(得分:0)

您的ajaxLoader函数应返回false,以便不会跟踪单击的链接。

答案 2 :(得分:0)

如果您在本地运行代码,您将获得状态0而不是状态200.要处理这两者,您可以使用:

if (x.readyState == 4 && (x.status == 0 || x.status == 200))

此外,当您单击该链接时,将会跟踪该链接,因为您尚未取消该链接。由于href是“#”,它将出现在同一页面的顶部,但它仍然可能导致问题。 (一个副作用是当您按下链接时页面将滚动到顶部。)取消链接,然后从点击事件返回false:

onclick="ajaxLoader('guestBook.txt');return false;"

答案 3 :(得分:0)

想出来..我从来没有清除过缓存... CACHE再次获胜!