【发布时间】:2016-08-19 09:00:31
【问题描述】:
我正在尝试从 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 方法永远不会运行,因为我从未在控制台上看到Processing request... 输出。这里的路径应该是什么?需要和客户端中的URL一致吗?
这里有什么问题?我相信整体结构还可以,但是路径/URL 应该是什么?(即,不仅仅是它们的值上面,但它们的语义。在线文档没有说明这一点。)
如果有帮助,我的 HTML 表单将使用 method="post" 并且没有指定 action。我已经调整了这些设置和许多其他设置,但都没有运气。
【问题讨论】: