gpt4 book ai didi

node.js - 向 Node 服务器发送 POST 请求时未得到响应

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

我正在使用 Express 和 Node js。如果我在不同的主机或服务器(除了我的应用程序正在运行的主机或服务器)上运行 HTML 模板,那么我不会收到任何响应。

如果我从同一服务器上托管的文件向 Node 服务器发出发布请求,那么它会成功给出 JSON 响应。

我想创建一个 REST API 应用程序,这样每个人都可以发布请求并使用响应数据。

我的 HTML 文件代码(在 Node 服务器本地运行):

<script type="javascript">
function submitit() {
var name = $('#name').val();
var id = $('#pw').val();
var obj = {
name: name,
id: id
};
//posting on node server
$.post('http://localhost:3001/user', {
data1: obj
}, function (data, status) {
alert(data);
//window.location.href = "http://google.com";
}, 'json')
}
</script>
<body>
<h1 class="hone">Log in to site.</h1>
<form method = "post" id="yourform">
user id :<input type="text" id='name' name="userid" /><br />
password :<input type="text" id='pw' name="password" /><br />
</form>
<input id="formsubmit" type="button" onclick='submitit();' value="login" /><br />
<div id="flash"></div>
</body>

Node 服务器上的app.js:

app.post("/user", function (req, res) {
console.log("ok");
//var h=req.params.name;
var user = {
"name": "sdf",
"add": "f"
};
//var r = req.body.name;

console.log(user);
console.log(req.body.data1);
res.json(user);
});

如果我从同一主机请求,这工作正常,但如果从不同机器的文件发送请求,它就不起作用。

最佳答案

找到解决方案,只需添加中间件即可进行跨域通信

将以下中间件添加到您的app.js或脚本代码中。

var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');

next();
}

app.use(allowCrossDomain);

关于node.js - 向 Node 服务器发送 POST 请求时未得到响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534305/

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