http get vue.js + node.js返回空数据

时间:2018-10-27 17:15:14

标签: javascript node.js vue.js http-get

我正在用vue + nativescript做一个项目

当我从Vue项目中调用app.get函数时不会触发

此电话:

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我发现了问题,这是ios的安全问题,它们不允许http调用,仅允许https(我在ios模拟器上运行项目)

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection