AngularJS和Node.js Express - $ http.get成功块未被调用

时间:2016-02-12 12:42:01

标签: javascript angularjs node.js express

我对AngualarJSNode.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");
  });

有谁知道我做错了什么?

3 个答案:

答案 0 :(得分:4)

您的服务器的app.get阻止了发送的响应:

尝试添加: res.sendStatus(200);res.status(XXX).send(*object/string*); 最后。

以下是文档:http://expressjs.com/en/4x/api.html#res

答案 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错误。