AJAX запрос возвращает текст ответа 'false' вместо желаемого текста ответа - PullRequest
0 голосов
/ 25 мая 2020

У меня есть файл javascript на стороне браузера, который должен запрашивать у файла php на стороне сервера строку с запросом ajax. Кажется, что файл php имеет правильную строку, но по какой-то причине запрос ajax возвращает строку 'false'. Это файл php с именем test. php:

    <?php
$dir = "site/uploads";
$a = scandir($dir);
$b = json_encode($a);
echo $b;
?> 

Это файл js:

function load(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.responseType = "text";
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
     console.log('test' + xmlhttp.responseText);
     console.log('test' + JSON.parse(xmlhttp.responseText));
  }
};
xmlhttp.open("GET", "test.php", 'false');
xmlhttp.send();

var xmlhttp2 = new XMLHttpRequest();
xmlhttp2.responseType = "text";
xmlhttp2.onreadystatechange = function() {
  if (xmlhttp2.readyState == 4 && xmlhttp2.status == 200) {
     console.log('test2' + xmlhttp2.responseText);
     console.log('test2' + JSON.parse(xmlhttp2.responseText));
  }
};
xmlhttp2.open("GET", "test2.php", 'false');
xmlhttp2.send();
}

, когда я открываю веб-сайт в своем браузере и запустите load (), консоль прочитает: testfalse testfalse test2false test2false и ошибок нет. Что я здесь делаю не так? Спасибо!

1 Ответ

0 голосов
/ 25 мая 2020

scandir() в файле php, вероятно, возвращает false из-за ошибки.

https://www.php.net/manual/de/function.scandir.php (проверьте возвращаемые значения)

Это может произойти несколькими способами:

  • Папка не существует
  • Неверный путь (попробуйте использовать абсолютные пути)
  • Папка недоступен из-за отсутствия разрешений
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...