0

データをphpファイルに投稿し、結果を取得して出力を変数に返すことができる、書き込もうとしているメソッドがあります。何らかの理由で、私のコードブロックが機能していません。

function post_get(){

var result = null;

$.post("modules/data.php", { "func": "getNameAndTime" },
function(data){
    result = JSON.parse(data);
}, "json");


return result;
}

このメソッドを使用すると、このエラーが発生します

SyntaxError:JSON解析エラー:予期しない識別子「undefined」

4

2 に答える 2

7
  1. Ajaxは非同期です。
  2. PHPは有効なJSONを返していますか?

これは、ajaxの非同期性を利用するためのコードの記述方法です。

function post_get(){

    return $.post("modules/data.php", { "func": "getNameAndTime" }, "json");

}

post_get().done(function(data){
    // do stuff with data
    console.log(data);
}).fail(function(){
    console.log(arguments);
    alert("FAIL.\nCheck the console.");
});
// Do not attempt to bring data from inside the above function to out here. 
于 2012-12-18T16:28:24.447 に答える
1

サーバーが適切な JSON エンコード出力を返し、正しいヘッダー ( ) を設定する場合は、すぐにContent-Type: application/json使用できます。data

$.post("modules/data.php", {
    "func": "getNameAndTime"
},
function(data){
    console.log(data);
}, "json");

// btw, at this point in the code you won't have access to the return value

実際、適切なデータが返されなかったとしてもconsole.log(data)、最初に機能しなかった理由を突き止めるのに十分な情報が提供されるはずです。

于 2012-12-18T16:27:32.780 に答える