Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему получаю ошибку при fetch локального JSON? (https://javascript.ru/forum/misc/79525-pochemu-poluchayu-oshibku-pri-fetch-lokalnogo-json.html)

reacter 19.02.2020 08:02

Почему получаю ошибку при fetch локального JSON?
 
Доброго времени суток!
Как правильно сделать fetch локального "data.JSON"?

Сейчас делаю вот так, и получаю ошибку - SyntaxError: Unexpected token < in JSON at position 0

Services.js
export default class ApiService {
    async GetPeople() {
        const request = await fetch('./data.json');
        if(!request.ok) {
            throw new Error('Что-то пошло не так', request.status)
        } else {
            return request.json()
        };
    };
};


Userslist.js (отсюда обращаюсь к services)
import Service from '../../../Services';

const UsersListContainer = () => {

    const api = new Service();

    useEffect(() => {
        api.GetPeople()
        .then(data => console.log(data))
    }, [api])

    return (
        <UsersListView />
    );
};

export default UsersListContainer;

voraa 19.02.2020 08:49

Это ошибка в JSON.
Надо его смотреть.

reacter 19.02.2020 09:17

JSON
[
	{
		"id": 0,
		"favourite": false,
		"name": "Gilbert Morton",
		"age": 30,
		"phone": "(369) 432-9206",
		"image": "sheep",
		"phrase": "Japman somam mes lizmasapa om zefopi ki wa ogju mofrajnir denba uc famoso opeipu woul.",
		"video": "shoe"
	},
	{
		"id": 1,
		"favourite": true,
		"name": "Jeffery Davidson",
		"age": 57,
		"phone": "(415) 670-6901",
		"image": "pig",
		"phrase": "Lejtefup boc hi ricge tela mo ragdi vutomeh kuhup veosubu pe ceso juhzustum ipagagcub fu."
	}
]

voraa 19.02.2020 10:58

Это то, что вы передаете, или то, что получаете?
(Не факт, что это одно и тоже)
Просто в самом сообщении об ошибке говорится, что в JSON обнаружен непредвиденный символ <

reacter 19.02.2020 11:15

https://codesandbox.io/s/silly-montalcini-2z146
Не похоже

voraa 19.02.2020 14:51

Ну сделай вместо
return request.json()

console.log (await request.text())

И посмотри, что приходит

voraa 19.02.2020 14:59

Мне пришло:

<!DOCTYPE html>
<html lang="en">

<head>
<script crossorigin type="text/javascript" src="https://codesandbox.io/static/js/vendors~app~embed~sandbox-startup.963c66368.chunk.js"></script>
<script crossorigin type="text/javascript" src="https://codesandbox.io/static/js/sandbox-startup.1db63978b.js"></script>

<script src="//codesandbox.io/static/browserfs8/browserfs.min.js" type="text/javascript"></script>
.......

Malleys 19.02.2020 16:29

Цитата:

Сообщение от reacter
Как правильно сделать fetch локального "data.JSON"?

Этот файл следует поместить в папке public (рядом с index.html), поскольку он не участвует в сборке. При помощи await fetch('./data.json'); вы запрашиваете именно тот файл, который находится в папке public.

https://codesandbox.io/s/optimistic-noether-lubgn


Часовой пояс GMT +3, время: 04:17.