Почему при fetch локального JSON в React возникает ошибка “Unexpected token '<'”?
При попытке загрузить локальный JSON-файл с помощью fetch в React появляется ошибка:
Файлы расположены так же, как в примере на Hexlet. Как правильно вызвать fetch для локального JSON?
5 месяцев назад
Nikolai Gagarinov
Ответы
Ошибка возникает потому, что браузер не может напрямую читать файлы с файловой системы через fetch. Вместо JSON-файла возвращается HTML (например, страница 404 или index.html), поэтому парсер JSON видит < вместо {.
Как исправить
- Положите JSON-файл в папку
publicвашего React-приложения. Например:
- Используйте
fetchотносительно корняpublic:
В этом случае файл будет доступен по URL, и fetch сможет корректно прочитать JSON.
Альтернативно можно настроить Webpack/DevServer, чтобы он отдавал локальные файлы, но проще использовать public для статических ресурсов.
Ну и посмотрите пример настроенного приложения
5 месяцев назад
Nikolai Gagarinov
108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845