gpt4 book ai didi

angularjs - 将 POST 表单数据从 AngularJS 客户端发送到 Express/Node.js 服务器

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:38 25 4
gpt4 key购买 nike

我正在尝试从 AngularJS 表单读取数据并将其发送到 Express 服务器。我发送数据的客户端函数确实执行,但请求从未到达服务器。我认为网址存在问题。

我的AngularJS Controller 的相关部分:

$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 服务器的绝对路径。这个网址应该是什么? (是否需要指向某个现有文件?)

我的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 。我已经调整了这些和许多其他设置,但没有成功。

最佳答案

答案是列出的答案的组合。

  1. 请勿在 URL 中列出 Express 服务器的扩展名。
  2. 不要
  3. 将端口号添加为 :3000 紧跟在 IP 地址后面

AngularJS 客户端:

url: 'http://##.##.##.##:3000/login'

快速服务器路由:

 app.post('/login', function(req, res) {
console.log('Processing request...');
res.sendFile('/success.html');
});

我还发现我的 Amazon Web Services 实例的安全组正在阻止端口 3000 上的传入流量。在向外界开放此端口后,我的应用程序可以正常运行。

关于angularjs - 将 POST 表单数据从 AngularJS 客户端发送到 Express/Node.js 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com