$ http.get成功方法未调用

时间:2016-05-21 17:42:17

标签: angularjs http

我是AngularJS&的NodeJS。我试图从NodeJS获得API响应并以角度显示它。我使用$ http来进行API调用。下面是我的nodeJS代码。

var express = require('express');
var app = express();
app.get('/employees',function(req,res)
{
 console.log("Test Output :");
 res.status(200).send('Hello User');
});
app.listen(8080);

下面是我的角度代码

var myapp = angular.module('myapp',[]).controller('myappController',    ['$scope','$http',function ($scope,$http){
$http.get('http://127.0.0.1:8080/employees')
    .then(function(response)
    {
         window.alert("Success");
         $scope.emdata=response.data;
    },function(errorresponse)
    {
         window.alert("Error");
         $scope.emdata=errorresponse.status;
    });
}]);

我在HTML页面中使用表达式{{emdata}}。当我打开HTML页面时,我可以在NodeJS终端中看到控制台输出“Test Output”,这意味着API被调用但我在HTML页面中看不到“Hello User”。看起来$http.get中的成功函数没有被调用,只有错误函数被调用。每当我打开HTML页面并在{{emdata}}的位置将响应状态设置为-1时,我会看到一个带有“错误”的警报窗口。

当我尝试使用Postman进行API调用时,我得到状态为200的正确响应。所以我想知道出了什么问题?

1 个答案:

答案 0 :(得分:0)

检查标题,即$ http请求接受的格式和响应的格式(JSON,纯文本等)。

修复

中的值
$httpProvider.defaults.headers.common

或在

中设置所需的一个
$httpProvider.defaults.headers.get = { ... };

或只是使用

var requestParams = {
    method: 'GET',
    url: '...',
    headers: {
        ...
    }
};
$http(requestParams).then(...);

请查看official manual中的设置HTTP标头以获取更多详细信息。