我只是关注教程并弄清楚如何在NodeJS中处理get请求。
以下是我的代码片段:
的NodeJS:
router.get('/test', function(request, response, next) {
console.log("Received Get Request");
response.jsonp({
data: 'test'
});
});
角:
$http.get("http://localhost:3000/test").
success(function(response) {
alert("OK");
}).
error(function(response) {
alert("FAIL");
});
如果我尝试直接访问@ localhost:3000/test
链接,我就能正确收到JSON消息。但是当我使用angularJS $ http调用时,请求总是失败,我会在网络检查器中发现此错误(响应)
SyntaxError:JSON.parse:第1行第1列的意外数据结尾 JSON数据
原因是因为响应是空的,但在两种情况下响应代码都是200。
我已经尝试过寻找几个小时,但也许有人可以在这方面启发我?
答案 0 :(得分:0)
然后在您的http请求中,您可以使用'然后'
$http.get("http://localhost:3000/test").then(function(res) {
console.log(res);
})
与成功不同,那么会给你一个完整的对象(' test' - string as res.data)
成功只会带给你数据;
然后将为您带来整个对象(具有状态等)..
现在关于jsonp ..它用于覆盖json响应。你可以简单地使用' res.json({data:' test'})'它也应该对你有用..
希望有所帮助
答案 1 :(得分:0)
您在节点中使用jsonp,您可能不需要这样做。这会为响应添加额外的字符,因此JSON解析器无法解析(错误告诉您的是,JSON格式错误)
尝试将服务器更改为
response.json({
data: 'test'
});
如果查看开发人员工具的“网络”面板,您应该能够看到原始响应。它应该看起来像:
{"data" : "test"}