не удается получить содержимое файла из файла .txt сервера - PullRequest
0 голосов
/ 14 марта 2020

Я работаю в d html (html5, CSS3, последний JavaScript и Perl 5.26.3), используя серверы Apache / 2.4.39 (Win64) и mod_perl / 2.0.10 на Windows 10. Кажется, я не могу заставить ajax работать.

Я пытаюсь «вывести» многострочный файл (каталог и имя файла) из базы данных. Я думаю, что текст ответа будет возвращать строку строк, разделенных концами строк (\ n). Я пробовал простейший подход w3, jquery и d3. Подход w3 приведен ниже.

    var mFn = document.forms[0]['thefdir'].value + 'Measures/all.mea?t=' + Math.random(); // Unique ID bypasses cache.

    var xhttp = new XMLHttpRequest();
    xhttp.open('GET', 'dog.txt', true);
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        fieldName3 = this.responseText;
      }
    };    
    xhttp.send();

Он выполняется onChange для поля в форме, сгенерированной Perl CGI-программой. Поле fieldName3.value будет обработано в нисходящем направлении в JS.

. Я пробовал его с полностью определенным местоположением (mFn) и относительным местоположением (dog.txt) с 1 строкой в ​​нем. Ни один не работал. Я не знаю, к какому каталогу относится относительное местоположение. Поэтому я положил копию на сервер root и в каталоги cgi-bin. Это не работает. Ничего не происходит, и информация об ошибках не генерируется.

Любая помощь будет оценена. craigt

1 Ответ

0 голосов
/ 18 марта 2020

Данные в консоли и, наконец, в предупреждении выглядят как многострочный файл, где каждая строка заканчивается CRLF, что подтверждается Notepad ++. Это то, чем является файл на сервере.

По-видимому, при асинхронном запросе нисходящий поток javascript выполняется до завершения запроса от сервера. Когда я переключаю его на синхронный запрос, он работает, как и ожидалось, во всех 5 браузерах. Поэтому я должен: 1) быть в состоянии заставить процесс JS ждать, пока назначение onreadystatechange не завершится, или 2) принять синхронное выполнение. Я прочитал несколько предупреждений о 2. Файл маленький, активность апериодическая c и встречается все реже, а синхронный эффект будет очень коротким. Что вы думаете о 1 или 2.

И спасибо за работу со мной. Я прошу прощения за открытие этого, когда я сделал. Сначала я мог бы сделать гораздо больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...