来自 AngularJS 的 NodeJS HTTP 请求

NodeJS HTTP request from AngularJS

本文关键字:HTTP 请求 NodeJS AngularJS 来自      更新时间:2023-09-26

我目前正在开发一个Web应用程序,在前端使用AngularJS,在后端使用NodeJS。但是,我在从前面请求后端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 :,但是,当我使用 curl 或通过浏览器请求后端时,我会返回测试字典。前端似乎可以访问后端,因为我在我的后端日志中看到它已经完成了一个请求并得到了一些东西,但 firebug 说响应是空的,我该怎么办?

非常感谢,如果您需要我的更多信息,请告诉我。

马蒂亚斯

确保前端和后端服务器具有相同的源(协议、主机和端口)。如果没有,则不会收到响应,因为您发出了跨源 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)