ノードjsでExpressを使用しています。HTML テンプレートを別のホストまたはサーバー (アプリケーションが実行されているもの以外) で実行すると、何の応答も得られません。
同じサーバーでホストされているファイルからノードサーバーに投稿要求を行うと、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);
});
これは、同じホストからリクエストした場合は正常に機能しますが、別のマシンのファイルからリクエストを送信した場合は機能しません。