0

有一个用 HTML5 编码的登录表单,一旦按下提交按钮,在不重新加载文档的情况下要求服务器检查凭据的最佳方法是什么?我可以使用脚本要求服务器验证凭据并返回(例如) a sessionID,如果返回 null(如果此类凭据无效),则显示错误消息并让用户更正他的凭据?...或一些类似的情况。

显示这种行为的简单 HTML5/脚本代码将不胜感激。

4

1 回答 1

1

是一个非常好的插件,由 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>
于 2013-06-01T18:46:55.617 回答