Angularjs Node.js w/Express未接收来自Angular应用程序的请求
按下“发送”按钮时,我试图从Angular app controller执行GET请求,如下所示:Angularjs Node.js w/Express未接收来自Angular应用程序的请求,angularjs,node.js,Angularjs,Node.js,按下“发送”按钮时,我试图从Angular app controller执行GET请求,如下所示: var config = { method: 'GET', url: '/sendmail', params: { from: $scope.name, email: $scope.email, message: $scope.message } }; $http(config).then(function (res) { console.log("t
var config = {
method: 'GET',
url: '/sendmail',
params: {
from: $scope.name,
email: $scope.email,
message: $scope.message
}
};
$http(config).then(function (res) {
console.log("this message is successfully printed!");
});
在我的Node.js Express应用程序中,我有:
app.get('/sendmail', function (req, res) {
// This should print, but never does.
console.log("Got mail!");
});
为什么您认为即使Angular应用程序正在发送呼叫,Express函数也没有接听呼叫?也许您在服务器代码的某个地方设置了为所有请求提供“index.html”服务(SPA的正常做法)?您应该确保您的代码处理
GET/sendmail
放在服务index.html
的代码之前。您的URL在角度脚本中是/send
,而在Express中是/sendmail
。否。。。对不起,我在代码中做得很正确。。我只是打错了。感谢您的通知。您是否尝试将请求发送到应用程序外部的服务器?e、 g.直接在浏览器中访问它?@bartekbr是的,我直接在浏览器中尝试过。。。。但它仍然没有调用函数。。。在我看来,我的角度用户界面路由器interfering@bartekfr我只是试着向邮递员提出请求。。。我很惊讶地看到,我得到了我的整个网页HTML回来!这可能会告诉我们一些事情……哦,太棒了!这正是问题所在!非常感谢你,伙计。然而,你能告诉我一件事。。。app.use
和app.get
之间有什么区别。因为,在我的节点app.js中,我使用的是app.use(function(req,res){res.sendFile(path.join(uu dirname,'/index.html'));})代码>。。。使用app.get('/',function(req,res){res.sendFile(path.join(uu dirname,'/index.html'));}会有什么不同吗代码>相反?-这是针对中间件的,比如为每个请求做一些特定的事情。我很高兴我能提供帮助:)关于use
和get
之间的差异,请检查以下答案:@BartekFryzowicz是的,非常肯定。:)