Я пытаюсь получить веб -страницу для чтения текста из файлов, удерживаемых на одном и том же веб -сервере. Ниже приведен код, который я использую; Он объединен из нескольких высокооделенных ответов на подобные вопросы на этом сайте. Когда я первоначально опубликовал этот вопрос, он был закрыт, потому что он рассматривался как дубликат «асинхронной функции неявно возвращает обещание?». К сожалению, я не смог решить свою проблему, изучая ответы на этот вопрос, без сомнения, потому что им потребовалось более глубокое понимание 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
Почему JavaScript Fetch Call не позволяет мне читать содержимое файла? [дублировать] ⇐ Javascript
Форум по Javascript
1743462417
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?
Подробнее здесь: [url]https://stackoverflow.com/questions/79547336/why-does-javascript-fetch-call-not-enable-me-to-read-contents-of-the-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия