来自 AngularJS 的 NodeJS HTTP 请求
NodeJS HTTP request from AngularJS
我目前正在开发一个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)
相关文章:
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- 使用插件收听Firefox标签的http请求
- http请求使用html而不是json进行响应
- 在node-js路由中发出http请求
- 是否可以在没有HTTP请求或<输入>
- Acync JS HTTP请求通知请求
- PhantomJs在控制台中发出http请求时不会返回任何状态
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- Firefox插件-如何发出http请求
- 验收测试主要针对传出的http请求
- 验证HTTP请求来自NFC标签上的点击
- 如何制作'http请求'在Node js中同步
- 为什么我在Cloud9中的http请求总是返回错误
- AngularJS Typeahead和$http请求限制
- HTTP请求使用cURL,但在浏览器中使用javascript时会得到CORS响应
- 如何使用Chrome扩展API获取网页的所有HTTP请求
- 将http请求中的数据传递给C#控制器
- 在初始化路由之前发送$http请求
- 从客户端捕获 HTTP 请求(包括 ajax)