Почему JavaScript Fetch Call не позволяет мне читать содержимое файла? [дублировать]Javascript

Форум по Javascript
Ответить
Anonymous
 Почему JavaScript Fetch Call не позволяет мне читать содержимое файла? [дублировать]

Сообщение Anonymous »

Я пытаюсь получить веб -страницу для чтения текста из файлов, удерживаемых на одном и том же веб -сервере. Ниже приведен код, который я использую; Он объединен из нескольких высокооделенных ответов на подобные вопросы на этом сайте. Когда я первоначально опубликовал этот вопрос, он был закрыт, потому что он рассматривался как дубликат «асинхронной функции неявно возвращает обещание?». К сожалению, я не смог решить свою проблему, изучая ответы на этот вопрос, без сомнения, потому что им потребовалось более глубокое понимание JavaScript, чем я. Однако, тем временем, @Quentin и @Barmar объяснили, что я делаю неправильно, и, следуя их руководству, я заставил свой код работать.document.getElementById("startbutton").addEventListener("click", starter);

function starter() {
alert("in js")
document.getElementById("sample").innerHTML = "Results: "
mytext = gettext("fetchsample.txt")
document.getElementById("sample").innerHTML += mytext
}
async function gettext(file) {
try {
gotfile = await fetch(file)
if (!gotfile.ok) {
document.getElementById("sample").innerHTML +=
"could not fetch" + file + " " + gotfile.statusText
};
} catch (ferror) {
alert("fetch error " + ferror.message)
}
try {
myText = await gotfile.text();
if (!myText.ok) {
document.getElementById("sample").innerHTML +=
" could not read " + file + " ";
}
} catch (rerror) {
alert("read error " + rerror.message)
}
return myText
}< /code>






JavaScript Fetch API
The fetch() Method
The first line of the file will go here
No file loaded
Click to try it



< /code>
< /div>
< /div>
< /p>
Файл, который код пытается прочитать, fetchsample.txt, находится в том же каталоге на сервере, что и код HTML, поэтому (я полагаю) не должно быть проблем Cors. JS ") Пожары правильно, поэтому я знаю, что попадаю в JavaScript. < /li>
[*] Второе оповещение (« ошибка извлечения ... ») не стреляет, кроме того, строка« не может принести ... »не вставлена ​​в параграф« Пример », поэтому я предполагаю, что первое утверждение (все это не завершается, не завершается, не завершается, не завершается, не завершается. успешно, потому что условие if (! mytext.ok) активируется: «не мог прочитать fetchsample.txt» вставлено в пример параграфа «. Оператор Catch, однако, не принимается. Любопытно, что он появляется до того, как сообщение «Не удалось прочитать ...»: точное содержание абзаца «образец», когда это запускается в Chrome или Firefox, является «Результаты: [Object Promise] не мог прочитать fetchSample.txt», предполагая, что GetText вернул этот результат до того, как завершено второе заявление о ожидании. Я предполагаю, что это что -то связано с тем, как Async /Await Function в JavaScript.
Обратите внимание, что если вы попытаетесь запустить фрагмент с этого сайта, он возвращает сетевую ошибку, поскольку ссылка на файл является относительным, а соответствующий файл не существует; Но я не могу выйти из этого, вложив полную справку, предположительно из -за CORS.
Итак, что я здесь делаю не так? Почему этот код не возвращает содержимое elechsample.txt?


Подробнее здесь: https://stackoverflow.com/questions/795 ... f-the-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»