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 解析错误:意外的标识符“未定义”

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 回答