Файл читается в div через ajax. Я скучаю по чему-то маленькому, я думаю - PullRequest
0 голосов
/ 17 ноября 2009

Я делаю что-то очень простое, и все же это не работает .. возможно, я что-то упускаю.

Мне нужно прочитать текстовый файл через 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 голосов
/ 17 ноября 2009

Разобрался .. Я никогда не очищал кеш ... СНОВА КЕШ ВЫИГРЫВАЕТ!

0 голосов
/ 17 ноября 2009

Ваша функция ajaxLoader должна возвращать значение false, чтобы по нажатой ссылке не следовало.

0 голосов
/ 17 ноября 2009

Если вы выполняете код локально, вы получите статус 0 вместо статуса 200. Для обработки обоих вы можете использовать:

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

Кроме того, при переходе по ссылке будет идти ссылка, поскольку вы ее не отменили. Так как href - это «#», он попадет в начало той же страницы, но все равно может вызвать проблемы. (Одним из побочных эффектов является то, что при нажатии на ссылку страница прокручивается вверх.) Отмените ссылку, после которой следует возврат false в событии щелчка:

onclick="ajaxLoader('guestBook.txt');return false;"
0 голосов
/ 17 ноября 2009

Попробуйте удалить это if(document.getElementById)

Можете ли вы предупредить вашу .responseText собственность? Это работает с использованием синхронного шаблона?

...