JQuery Post和Get

时间:2012-12-18 16:25:47

标签: php javascript jquery

我有一个我正在尝试编写的方法,可以将数据发布到php文件并获取结果并将输出返回给变量。出于某种原因,我的代码块无效。

function post_get(){

var result = null;

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


return result;
}

使用此方法时出现此错误

SyntaxError:JSON解析错误:意外的标识符“未定义”

2 个答案:

答案 0 :(得分:7)

  1. Ajax是异步的。
  2. 您的PHP是否返回有效的JSON?
  3. 这就是编写代码以利用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. 
    

答案 1 :(得分: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)也应该为您提供足够的信息,以便找出它首先不起作用的原因。