我是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的正确响应。所以我想知道出了什么问题?
答案 0 :(得分:0)
检查标题,即$ http请求接受的格式和响应的格式(JSON,纯文本等)。
修复
中的值$httpProvider.defaults.headers.common
或在
中设置所需的一个$httpProvider.defaults.headers.get = { ... };
或只是使用
var requestParams = {
method: 'GET',
url: '...',
headers: {
...
}
};
$http(requestParams).then(...);
请查看official manual中的设置HTTP标头以获取更多详细信息。