我正在用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
})
答案 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模拟器上运行项目)