我正在使用带有节点 js 的 Express。如果我在不同的主机或服务器上运行我的 HTML 模板(除了我的应用程序正在运行的那个),那么我不会得到任何响应。
如果我从托管在同一服务器上的文件向节点服务器发出 post 请求,那么它会成功给出 JSON 响应。
我想创建一个 REST API 应用程序,这样每个人都可以发布请求并使用响应数据。
我的 HTML 文件代码(在节点服务器上本地运行):
<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>
节点服务器上的 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);
});
如果我从同一主机请求,这工作正常,但如果从文件发送请求到另一台机器,它就不起作用。