http get vue.js + node.js возвращает пустые данные - PullRequest
0 голосов
/ 27 октября 2018

Я делаю проект с 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": "", как будто сервер выключен, ( сам вызов действителен, он работает с другими apis )

но простой тест с 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
})

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

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

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

0 голосов
/ 27 октября 2018

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);
});
...