Http get vue.js + node.js возвращает пустые данные

Я делаю проект с vue + nativescript

функция app.get не запускается, когда я вызываю ее из проекта vue

этот звонок:

const urlChannels = 'http://localhost:3001/sources';
  axios.get(urlChannels)
   .then(response => {
     store.commit('setTasks', {
       channels: response.data,
     });
   }) 
 }

возвращает: "data": "", "status": null, "statusText": "" как если бы сервер выключен, (сам вызов действителен, он работает с другими API)

но простой тест с angularjs в браузере возвращает действительные необходимые данные

это мой nodejs:

app.get('/sources', function (req, res) {
  res.set({
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Methods': 'GET'
});
  res.writeHead(200,{'Content-Type':'application/json'})
  let data = getNews.getSources()
  res.send(JSON.stringify(data));
  //res.json(data); also tried this same resualt
})

Почему вы используете res.end () вместо res.send ()?

Jim B. 27.10.2018 22:33

Кроме того, вы уверены, что urlChannels имеет правильный URL-адрес? Вы можете показать нам, как это происходит?

Jim B. 27.10.2018 22:38

Я пробовал всевозможные варианты перед res.end .. важно отметить, что простой вызов ajax из тестового запроса в angularjs действительно приносит данные, успешно обновляющие вопрос

Nadav 28.10.2018 10:39

Что возвращает getNews.getSources ()?

Jim B. 28.10.2018 22:49

Я обнаружил проблему, это проблема безопасности с ios, они не разрешают http-вызовы, только https (я запускаю проект на эмуляторе ios)

Nadav 30.10.2018 08:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
415
2

Ответы 2

res.end () предназначен для завершения ответа без данных (см. https://expressjs.com/en/api.html).

Если вы хотите вернуть json, самый простой способ - использовать res.json ():

app.get('/sources', function (req, res) {
    res.set({
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET'
    });
    let data = getNews.getSources()
    res.json(data);
});

Я обнаружил проблему, это проблема безопасности с ios, они не разрешают http-вызовы, только https (я запускаю проект на эмуляторе ios)

Ресурс не может быть загружен, поскольку политика безопасности транспорта приложений требует использования безопасного соединения.

Другие вопросы по теме