2013-03-21 4 views
2

Невозможно заставить AJAX работать! У меня есть шатер на веб-сайте, он работает! Но я хочу, чтобы он нашел текст области выделения в текстовом файле, и я хочу, чтобы он прочитал текст в текстовом файле (который является одной строкой) и назначил ему переменную с именем content, которая является глобальной переменной в скриптовый тег.Javascript: Чтение текстового файла с использованием AJAX

Когда я запускаю веб-сайт (локальный IIS), текст выделения: «undefined» (без кавычек).

Почему он не присваивает текст переменной content?

var content 

    function loadXMLDoc() 
    { 
     var textfile; 
     if (window.XMLHttpRequest) 
     { 
      textfile = new XMLHttpRequest(); 
     } 
     textfile.onreadystatechange = function() 
     { 
      if (textfile.readyState == 4 && textfile.status == 200) 
      { 
       content = textfile.responseText; 
      } 
     } 
     textfile.open("GET", "C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt", true); 
     textfile.send(); 
    } 

EDIT: миллион благодаря @kuncajs, как он указал, что я забыл вызвать функцию! :) Исправлена! Спасибо всем!

+0

Благодаря @BLSully для форматирования –

ответ

2

Не использовать локальные пути, как: C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt

поместить его в каталог WWW вашего IIS и указать путь, как: localhost/text.txt

Сервер может иметь ограниченный доступ к вашей файловой системе, а также вы следует попробовать относительные пути, такие как text.txt или абсолютные пути /text.txt, поэтому пути работают даже при развертывании в рабочей среде.

EDIT: Так что, если это не помогло, то убедитесь, что вы действительно вызвать функцию loadXMLDoc(). Также проверьте, что все, что вы делаете, это после AJAX заканчивается! Я имею в виду, что вы выполняете задание в if - когда AJAX сделан, но вы также должны инициализировать свою область! ПОСЛЕ! текст загружен. Если вы это сделаете до того, как оно будет неопределенным

+0

Hiya! Спасибо @kuncajs! Просто сделал, как вы сказали мне, все еще получил «неопределенный» в рамке шага, к сожалению. Я также попытался удалить «localhost /» и сохранить только текстовое имя файла. Текстовый файл находится в корневой папке www. –

+0

Хорошо, я попробую код и расскажу, как он работает. – kuncajs

+0

Спасибо миллион @kuncajs –

0

Попробуйте сначала использовать относительный или абсолютный путь.

Если это не работает, проверьте, что при использовании браузера вы можете получить доступ к файлу (скажем, ваш сайт находится на mysite.com/index.html, попробуйте открыть mysite.com/text.txt)

Если вы не можете получить к нему доступ через браузер, то вам вам придется настроить ваш сервер, чтобы этот файл мог быть прочитан, никогда не использовался IIS, поэтому я не могу вам помочь.

Кроме того, поскольку вы просите ваш XHR быть асинхронным это может занять некоторое время, прежде чем переменный заполняются (в зависимости от скорости вашего/вашего сервера)

Смежные вопросы