@MarEeeeee

Как получить данные с сервера?

Требуется получить значения из поля входящего json файла. json.table[0].dir но если написать так, то в консоль будет выведена ошибка TypeError: Cannot read property '0' of undefined.
Получить это поле из объекта firstWindow так же не выходит.
подскажите, как сделать это корректно?
Данные приходят точно те, на другом компоненте firstWindow[0].dir выводит правильное значение.

mounted(){
    fetch('/1', {
    method: 'POST', // *GET, POST, PUT, DELETE, etc.
    mode: 'cors', // no-cors, *cors, same-origin    
    headers: {
       'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
   
  })
    .then(response => response.json())    
    .then(json => this.firstWindow = json.table)    
    .then(json => console.log(json))
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 2
@RokeAlvo
Такая ошибка возникает когда вы где то дальше обращаетесь к table[0], а данных ещё нет
В последнем консольлоге точно не json
Ответ написан
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Работает? Не трогай.
В последних спецификациях добавились языковые конструкции async/await

Для своих Vue-cli проектов использую простенькую функцию
async function request ( url, method = 'get', data = null ){
    try {
        let body;
        if ( data !== null ) {
            body = JSON.stringify( data );
        }
        const response = await fetch( url, {
            method,
            headers: _headers,
            // _headers - Локальная (внутри моего модуля с функцией) переменная, в ней, настроенные для работы с корсами, заголовки
            body
            // Любые другие поля
        });
        return await response.json();
    } catch ( e ) {
        console.warn( e );
    }
}
/// ...
let data = request('your/awesome/server/url');

// Если не хотите работать с промисами, а получить сразу данные, то
let data = await request('your/awesome/server/url');


P. S. В вашем случае перед mounted не забудьте написать async.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
27 окт. 2020, в 15:42
1000 руб./в час
27 окт. 2020, в 15:30
100000 руб./за проект
27 окт. 2020, в 15:28
100000 руб./за проект