Sho*_*ali 1 javascript node.js express
为什么这个表单两次发送数据?此外,第二次,数据是"未定义的".
表格:
<form action="/loginPage" method="POST" >
Username: <input type="text" id="username"> <br><br>
Password: <input type="text" id="password"> <br><br>
<input type="submit" id="Login" value="Login" >
</form>
Run Code Online (Sandbox Code Playgroud)
客户端脚本:
$(document).ready(function(){
$('form').submit(function(event){
//event.preventDefault(); This prevents from sending data twice, but then the page doesn't redirect to "Hi, <username>"
$.post("/loginPage",{username: $("#username").val(),password: $("#password").val()}, function(data){
;
});
});
});
Run Code Online (Sandbox Code Playgroud)
服务器端脚本:
app.post('/loginPage', function(req, res) {
var username = req.body.username;
console.log("Now, "+username);
res.send("Hi, "+username);
//res.sendFile(__dirname + '/lobby.html');
});
Run Code Online (Sandbox Code Playgroud)
这是我运行此代码时得到的输出:
Hi, Sho
Hi, undefined
Run Code Online (Sandbox Code Playgroud)
过去一整天我都被困在这一个.请帮我.
第一次提交时,jQuery会触发并通过AJAX发送POST.第二个提交是HTML表单触发.您希望停止提交HTML表单并使用自定义处理程序.
您获得的原因是您的表单中的输入undefined没有name属性.
您应该return false;在jQuery处理程序中阻止表单触发,并对响应数据执行某些操作.
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |