我对AngualarJS
和Node.js
都很陌生,我的$http.get
方法的成功回调块没有被执行,我遇到了问题。当请求失败时,我的错误回调块会起作用,但是当它成功时,没有任何反应。
这就是我server.js
中的内容:
var express = require('express');
var app = express();
// This is for testing GET connection with server
app.get('/test', function (req, res) {
console.log("Got a GET request from my angular app");
res.send('Hello ANGULAR');
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
这就是我app.js
中的内容:
$http.get("http://localhost:8081/test")
.success (function (response) {
alert("GOT A RESPONSE");
})
.error (function() {
alert("SERVER GET TEST FAILED THO");
});
有谁知道我做错了什么?
答案 0 :(得分:4)
您的服务器的app.get
阻止了发送的响应:
尝试添加:
res.sendStatus(200);
或res.status(XXX).send(*object/string*);
最后。
答案 1 :(得分:0)
angular和node.js代码看起来很好。但是网络,配置等之间可能存在任何问题。
解决此问题的最佳方法是使用Chrome Dev工具网络面板。单击页面上的“Inspect”或Command-ALT-i(Mac)。
点击“网络”面板标签,查看您的请求和收到的回复。
答案 2 :(得分:-1)
试试这个:
$http.get('http://localhost:8081/test').then(
function successCallback(response) {
console.log("ok")
},
function errorCallback(response) {
console.log("error") ;
}
);
根据官方文档,请勿使用成功:
弃用通知
$ http遗留承诺方法成功与错误已被弃用。请改用标准方法。如果$ httpProvider.useLegacyPromiseExtensions设置为false,则这些方法将抛出$ http / legacy错误。