0

IUIフレームワークを使用していて、ajax呼び出しから結果を取得しようとしています。

firebugで見られるように、呼び出しは「XrayWrapper [Object XMLHttpRequest {}」を返しますが、オブジェクトからresponseTextを抽出できません。

Firebugで展開すると、responseTextは属性としてリストされますが、明るい灰色のテキストの前にget:"getResponseText"が付けられます。

    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のドキュメントを読むと、4番目の引数はコールバック関数のようです。だからあなたはこれをする必要があります:

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

PS-また、追加の引数があります。ドキュメントには、4つの引数、、、およびのみが表示さurlれます。paramsmethodcallback

于 2013-01-10T03:54:43.067 に答える