如何猎取ajax回调函数返回值谢谢!!!ajax

解决方案 »

  1.   

    设置ajax为同步的的,就不用回调了,直接xhr.responseText就行了,如果是函数就return xhr.responseText异步的要使用ajax的返回值的代码必须放到readyState==4判断里面
      

  2.   

    function HttpRequest(sUrl,fpCallback)
    { this.request = this.createXmlHttpRequest();
    this.request.open("GET",sUrl,true); var tempRequest = this.request;
    function request_readystatechange()
    { if (tempRequest.readyState == 4)
    { if (tempRequest.status == 200)
    {
    fpCallback(tempRequest.responseText);
    }
    else
    { return false; }
    }
    } this.request.onreadystatechange = request_readystatechange;}HttpRequest.prototype.createXmlHttpRequest = function ()
    {
    if (window.XMLHttpRequest)
    { var oHttp = new XMLHttpRequest();
    return oHttp; }
    else if (window.ActiveXObject)
    { var versions = 
    [
    "MSXML2.XmlHttp.6.0",
    "MSXML2.XmlHttp.3.0"
    ];
    for (var i = 0; 1 < versions.length; i++)
    { try
    { var oHttp = new ActiveXObject (versions[i]);
    return oHttp; }
    catch (error)
    { //do nothing here }
    }
    } return null;}HttpRequest.prototype.send = function ()
    { this.request.send(null);}
    function test4(sResponseText){
    var a = document.getElementById("verifyInput");
    if(sResponseText == a.value){
    //a.style.borderColor = "#d3d3d3";
    return false;
    }else{
    alert(141111);
    //a.style.borderColor = "#ff0000";
    return false;
    }
    }
    function verifys(){
    var request = new HttpRequest("http://127.0.0.1/test1/testverify.php",test4);
    request.send();
    }
    function testend(){if(verifys() == true){  //可是这个问题unfined
    return true;
    }}document.getElementById('zhuce').onclick=function(){return testend()}
      

  3.   

    本帖最后由 showbo 于 2013-10-22 16:10:14 编辑
      

  4.   


    我感觉还是不行,原因是 "request"返回的是"object Object",我想要返回一个布尔值或者一个别的值。怎么把个这"object Object"......
    麻烦您了!!!
      

  5.   

    异步不行,只能放后学代码到test4里面进行处理,而不能通过verifys得到返回值,楼主先去了解下异步ajax怎么个操作过程