【发布时间】:2013-11-01 07:02:43
【问题描述】:
我正在使用带有节点 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);
});
如果我从同一主机请求,这工作正常,但如果从文件发送请求到不同的机器,它就不起作用。
【问题讨论】:
-
您正在更改 url (
http://localhost:3001/user) 以反映服务器的更改,对吗?另外,也许您的其他服务器正在阻止传入流量?你的应用没有明确地监听127.0.0.1? -
我的两台服务器都在不同的端口上运行..!我想进行交叉沟通。