有一个用 HTML5 编码的登录表单,一旦按下提交按钮,在不重新加载文档的情况下要求服务器检查凭据的最佳方法是什么?我可以使用脚本要求服务器验证凭据并返回(例如) a sessionID
,如果返回 null(如果此类凭据无效),则显示错误消息并让用户更正他的凭据?...或一些类似的情况。
显示这种行为的简单 HTML5/脚本代码将不胜感激。
有一个用 HTML5 编码的登录表单,一旦按下提交按钮,在不重新加载文档的情况下要求服务器检查凭据的最佳方法是什么?我可以使用脚本要求服务器验证凭据并返回(例如) a sessionID
,如果返回 null(如果此类凭据无效),则显示错误消息并让用户更正他的凭据?...或一些类似的情况。
显示这种行为的简单 HTML5/脚本代码将不胜感激。
这是一个非常好的插件,由 jQuery 的创建者和其他贡献者编写。
您必须使用 javascript 才能在不重新加载整个页面的情况下调用服务器。
正如文档指出的那样,以下代码足以通过 AJAX 提交表单:
$(document).ready(function() {
var options = {
target: '#output1', // target element(s) to be updated with server response
beforeSubmit: showRequest, // pre-submit callback
success: showResponse // post-submit callback
// other available options:
//url: url // override for form's 'action' attribute
//type: type // 'get' or 'post', override for form's 'method' attribute
//dataType: null // 'xml', 'script', or 'json' (expected server response type)
//clearForm: true // clear all form fields after successful submit
//resetForm: true // reset the form after successful submit
// $.ajax options can be used here too, for example:
//timeout: 3000
};
// bind form using 'ajaxForm'
$('#myForm1').ajaxForm(options);
});
其中 myForm1 是您的 HTML 表单的 ID。
编辑
正如评论所指出的,如果您不使用 jQuery,则以下 javascript 代码也可以工作:
<script type="text/javascript">
function sendToServer()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// This is when you receive a response from the server
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","your_page.php?name=your_name&surname=your_surname",true);
xmlhttp.send();
}
</script>
<form method="POST">
<input type="submit" onclick="return sendToServer();">
</form>