#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();