来自AngularJS的NodeJS HTTP请求

我目前正在开发一个Web应用程序,使用AngularJS在前端和后端的NodeJS上使用express。 我有麻烦请求我的后端API,但是,希望你们能帮助我。

后端(NodeJS):

app.get('/test', function(req, res) { res.json(200, {'test': 'it works!'}) }) 

前端(AngularJS):

 myApp.controller('myController', function($scope, $http) { delete $httpProvider.defaults.headers.common["X-Requested-With"] $http.get('http://localhost:5000/test').success(function(data) { alert('Success') }).error(function(data, status) { alert('Error! ' + status + ' : ' + data) }) }) 

当我刷新应用程序,我得到一个警告说: Error! 0 : Error! 0 :但是,当我通过curl或浏览器请求后端时,我会得到testing代码。 虽然前端似乎能够访问后端,因为我看到它在我的后端日志中,它已经完成了一个请求,并返回一些东西,但萤火虫说,响应是空的,我该怎么办?

非常感谢,让我知道如果你需要我的更多信息。

马蒂亚斯

确保您的前端和后端服务器具有相同的来源(协议,主机和端口)。 如果不是这样,那么你就不会收到回应,因为你发出了异源的ajax请求。 在这种情况下,你应该从你的后端发送特殊的头文件来允许它:

 Access-Control-Allow-Origin: * 

您可以添加以下代码的响应标题:

 res.set('Access-Control-Allow-Origin', '*'); 

res.setHeader('Access-Control-Allow-Origin','*');

使用res.status(status).json(obj)而不是res.json(status, obj)