我正在尝试从一个AngularJS表单中读取数据并将其发送到Express服务器。我的客户端函数可以发送数据,但请求从未到达服务器。我认为URL存在问题。
AngularJS控制器中相关部分:
$scope.loginUser = function() {
$scope.statusMsg = 'Sending data to server...';
$http({
url: 'http://##.##.##.##/login.js', // IP address replaced with ##'s
method: 'POST',
data: user,
headers: {'Content-Type': 'application/json'}
})
这段代码会被执行,因为我从第一行看到了消息。 url
是我的 Express 服务器的绝对路径。这个 URL 应该是什么?(它需要指向某个现有文件吗?)
我的Express服务器相应部分(login.js
在同一个目录下):
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('*', function(req, res) {
console.log('Processing request...');
res.sendFile('/success.html');
});
app.listen(3000);
我执行了这个服务器,并且它在应该监听的3000端口上工作。但是当我的客户端执行时,上面的
app.post
方法从未运行,因为我从未在控制台上看到处理请求...
输出。这里的路径应该是什么?它需要与客户端中的URL一致吗?问题是什么?我认为总体结构是正确的,但路径/ URL 应该是什么?(即,不仅仅是上述情况的值,而是它们的语义。在线文档没有说明这一点。)
如果有帮助的话,我的 HTML 表单使用
method="post"
且未指定action
。 我已经调整了这些和许多其他设置,但没有运气。
login.js
的整个代码,因此服务器永远不会处理请求。我只是想将数据发送到服务器并让其在该数据上运行。你知道怎么做吗? - thatWiseGuy