javascript - 如何异步接收后端消息?

标签 javascript jquery ajax jakarta-ee

我需要验证用户名,因此当用户输入用户名时,应将其发送到后端以验证其可用性。我有以下代码,但对从后端接收可用或不可用消息有疑问。

   function verifyUsername(value){
           if(window.XMLHttpRequest)
            {
                xmlhttp = new XMLHttpRequest();
            }
            else
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                  document.getElementById("mymessage").innerHTML=xmlhttp.responseText;
                } 
            }
            xmlhttp.open("get","verifyUsername?username="+value,false);
            xmlhttp.send();
        }


  ....
  <div id="mymessage"></div>
   ....

服务器端伪代码(实际实现:Java)

 ....
 if(verify(username))
    return "Username is not available";
 else
   return "username is available";

最佳答案

我将给出一个 jQuery 示例,我不会关心纯 JavaScript 版本。您正在寻找的是在 ajax 请求返回后触发的回调函数。

// listen to a click event on a button OR something 
$("#buttonName").on("click", function(event){

    // prevent any default activity
    event.preventDefault();

    // get your value 
    var value = $("#mymessage").val();

    // jQuery ajax event
    $.ajax({
      url : "verifyUsername?username="+value,
      type: 'GET'
    }).done(function ( data ) {
       if ( console && console.log ) {
      console.log( "Data returned :"+data )
       // do something else
    }
    }):

.done() 是成功回调选项,还有其他选项:

    // jQuery ajax event
        $.ajax({
          url : "verifyUsername?username="+value,
          type: 'GET'
        })
    // successful callback
    .done(function(){ // success })
    // fail/error callback
    .fail(function(){ // fail })
    // completed callback 
    .always(function(){ // will always execute, even if request fails })
});

引用:http://api.jquery.com/jQuery.ajax/

关于javascript - 如何异步接收后端消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356001/

相关文章:

javascript - 我可以用 JavaScript 中的 switch 或 case 语句重构 if - else 吗?

javascript - 带有嵌套 iframe 的 Jquery Auto Height iframe

带有 OnComplete 的 Ajax.BeginForm 总是更新页面

javascript - 如何在主干 View 中加载外部 html 模板

javascript - 通过 UserManager 使用服务时,User 为 Null

javascript - 如何更改外部 .js 文件中的变量数据值?

javascript - 如何添加向下插入页面的箭头?

jquery数据表默认排序不起作用

javascript - PHP 私有(private)聊天长轮询集成

javascript - 用纯 Js 在每个 li 上应用函数