0

我在 Kony 应用程序中获得响应时遇到问题。这是代码

function getServerResponceOption(url){
        alert(url);
        var httpclient2 = new kony.net.HttpRequest();
        var requestMethod = constants.HTTP_METHOD_GET;
        var async = true;
        httpclient2.open(requestMethod, url,async);
        if(getAccessToken() != null && getAccessToken() != ""){
        httpclient2.setRequestHeader("AuthToken",getAccessToken());
        }
        httpclient2.send();
        httpclient2.onReadyStateChange = HandleResponce(httpclient2);   
}

function HandleResponce(obj)
{
   alert("Getting data "+obj.readyState+"   Status "+obj.status+" Response "+obj.response );
    if(obj.readyState == 4 )
    {
        if (obj.response != null && obj.response != "")
            {
                 var jsonObj = obj.response;
                 handleResponseOption(0,jsonObj);
                 return;
            }
            else
            {

            }
    }else{
     var state = obj.status;
     alert("Readystate "+obj.readyState+"  Status = "+state);
    }

    if (obj.response != null && obj.response != "")
     {
        var jsonObj = obj.response;
        handleResponseOption(1,jsonObj);
     }
}

在这里,如果我在没有警报的情况下放入警报消息,我会得到服务器响应,HandleResponce(obj)但我没有得到任何响应。就绪状态为 1,状态为 0。如果我删除警报消息,会出现什么问题?

注意: URL 和 getAccessToken() 正在获取值。

4

1 回答 1

3

您正在在线调用函数,当您使用HandleResponce(httpclient2)函数时会立即执行。

httpclient2.onReadyStateChange = HandleResponce(httpclient2);

将您的代码更改为

httpclient2.onReadyStateChange = function(){ HandleResponce(httpclient2) };
于 2014-05-21T10:40:10.973 回答