xhr xmlhttprequest не будет работать в браузере?

#javascript #browser

#javascript #браузер

Вопрос:

Я использую браузер для отправки XMLHttpRequest для чтения файла на сервере:

 //Read Text File
var xhr = new XMLHttpRequest();
xhr.open("GET","http://...........read.txt",false);
xhr.send(null); 
var fileContent = xhr.responseText;
  

Но я получил

неизвестная ошибка

сетевая ошибка

Любая помощь приветствуется

Комментарии:

1. Какую сетевую ошибку вы получаете? Можете ли вы указать формулировку ошибки?

2. 1. Можете ли вы получить текстовый файл в обычном запросе (вставьте http://...........read.txt в свой браузер и посмотрите, не появится ли ошибка). 2. Проверьте вкладку сеть в ваших инструментах разработчика, что именно вы видите http://...........read.txt ? 3. Вы делаете этот запрос из того же домена или пытаетесь отправить запрос в другой домен?

3. Почему вы отправляете null методом отправки

4. @AmitGolhar Это не должно вызвать никаких проблем. Смотрите xhr.send спецификацию

5. не могли бы вы опубликовать свою ошибку, пожалуйста

Ответ №1:

проверьте состояние кода состояния следующим образом:

     var xhr = new XMLHttpRequest();
xhr.open("GET","http://...........read.txt",false);
xhr.send(); 
console.log(xhr.responseText);
  

Комментарии:

1. используя ваш код, я получил эту ошибку: ошибка неперехваченного типа: не удается установить для свойства «innerHTML» значение null

2. Синхронный XMLHttpRequest в главном потоке устарел из-за его пагубных последствий для работы конечного пользователя. Для получения дополнительной помощи xhr.spec.whatwg.org строка rpg_objects.js 10500 > eval: 8:2 Заблокирован запрос из разных источников: политика того же источника запрещает чтение удаленного ресурса в http://….read.txt . (Причина: отсутствует заголовок CORS ‘Access-Control-Allow-Origin’).

Ответ №2:

Удалите false в xhr.open() функции. Установить onreadystatechange . Вы получите то, что хотите!

 var xhr = new XMLHttpRequest();
xhr.open("GET","http://...........read.txt");
xhr.onreadystatechange = function () {
    if (this.readyState == 4 amp;amp; this.status == 200) {
        console.log(xhr.responseText);
    }
}
xhr.send();