5

サーバーから情報を取得するためにajaxを使用しようとしています。ページxxx.phpは、123のみが書き込まれたページです。ただし、そのページのコンテンツを返したい場合は、nullを返します。

function myFunct(){
    $.ajax({
        url: 'xxx.php',
        success: function(data) {
            return data;
        }
    });
}

var data = myFunct(); //nothing.
4

5 に答える 5

8

ajaxは「非同期」であることに注意してください。そのため、myFunct()の実行が完了するまでに、サーバー呼び出しへの応答が受信されない場合があります。サーバー呼び出しからのデータを処理するロジックをajaxの「成功」に入れることができます。

function myFunct(){
    $.ajax({
        url: 'xxx.php',
        success: function(data) {
           // processMyData(data);
        }
    });
}
于 2012-09-30T16:21:44.477 に答える
5

AJAXは非同期です。

残りのコードの実行が終了してからしばらくすると、応答が返されます。

代わりに、次のように、コールバックを使用して値を返す必要があります$.ajax

function myFunct(callback){
    $.ajax({
        url: 'xxx.php',
        success: function(data) {
            // Do something to the data...
            callback(data);
        }
    });
}

myFunct(function(result) {
    ...
});
于 2012-09-30T16:27:19.497 に答える
1

同期モードで使用できます(コードの「フリーズ」を回避するために非同期コールバックで推奨されていますが)。

同期の使用:

function myFunct(callback){
   return $.ajax({
        url: 'xxx.php',
        async: false
    }).responseText;
}
于 2012-09-30T16:37:21.727 に答える
0
var globalVal;

    function myFunct(){
        $.ajax({
            url: 'xxx.php',
            success: function(data) {
                alert(data); // you can see you data
                globalVal= data;
            }
        });
    }

//サーバーへの応答であり、値を割り当てるのは少し遅れて実行された応答です

myFunct(); //nothing.
alert(globalVal) 
于 2012-09-30T16:20:21.747 に答える
0

応答を確認するために、ajaxエラー処理を使用してみてください

function myFunct(){
$.ajax({
    url: 'xxx.php',
    success: function(data) {
        alert(data);
    },
    error:  function(jqXHR, textStatus){
       alert("Status: "+ jqXHR.status);
       alert("textStatus: " + textStatus);
    }

});

}

于 2012-09-30T16:31:46.223 に答える