0

我正在使用 IUI 框架并试图从 ajax 调用中获取结果。

如萤火虫所见,该调用返回“XrayWrapper [Object XMLHttpRequest{}”,但是我无法从对象中提取responseText。

在 Firebug 中展开时,responseText 被列为属性,但是它以浅灰色文本为前缀,带有 get: "get ResponseText"

    var data = iui.ajax('login.php',{'userName':'sysadm','password':'sysadm'},'POST',null,xxxx(data))
    console.log(data.responseText);

我尝试了许多不同的方法,包括 data.get.responseText、data.get('responseText') 等,但仍然无法获取响应。

知道为什么吗?

4

1 回答 1

1

AJAX 调用是异步的,这意味着它会触发 AJAX 请求并立即记录data到控制台。此时,AJAX 调用尚未完成。我对您使用的框架不熟悉,但是您需要使用仅在异步请求完成后才执行的回调函数。

在这里阅读 IUI 文档,似乎第四个参数是回调函数。所以你需要这样做:

iui.ajax('login.php',{
        'userName':'sysadm',
        'password':'sysadm'
    },'POST', function(data) {
        // callback function. Only executes after ajax request completes
        console.log(data);
    }   
);

PS - 另外,你有一个额外的论点。文档仅显示四个参数urlparams和。methodcallback

于 2013-01-10T03:54:43.067 回答