0

後で処理できるように、JSON応答を変数に格納しようとしています。次のように試しましたが、nullを取得しました。

function go(){
   var jsonObj = getJson(url);
   alert(JSON.stringify(jsonObj));
  }

function getJson(){
    return JSON.parse($.ajax({
        type: 'POST',
        url: 'url',
        dataType: 'json',
        global: false,
        async: false,
        success: function(data){
        return data;
        }
    }).responseText);
}

その間、JSONコンテンツがサーバーコンソールに出力されるのを見ることができます。

編集

サンクスは..!これで問題は解決しました。ソリューションはIE8で正常に機能しますが、ChromeとFireFoxの場合はアラートポップアップで「null」が表示されます。私はそのブラウザ固有の修正とは思わない..?

4

1 に答える 1

1
$.ajax({
        type: 'POST',
        url: 'url',
        dataType: 'json',
        global: false,
        async: false,
        success: function(data){
         // do some stufs or assign data to a var
         window.myVar = data;
        }
   });

Ajax は非同期であるため、応答をコールバックの変数に格納する必要があります。この例では、window.myVar は応答データを含むグローバル変数です。応答が返されるまで変数にアクセスすることはできません。非同期コードを記述する必要があります。

于 2012-12-24T12:19:28.847 に答える