Jquery从POST函数返回[Object object]

时间:2013-12-08 21:18:23

标签: javascript jquery ajax

我想使用jquery帖子从php文件中获取一个字符串。

function getString(string) {
    return $.ajax({
        type : 'POST',
        url : 'scripts/getstring.php',
        data : { 'string': string }
    });
};
在firebug控制台中我可以看到找到了所需的字符串,但如果我想用它来获取它

var blub = getString("test");
    alert(blub);

仅显示“对象对象”。 只是无法得到我的错误..

3 个答案:

答案 0 :(得分:3)

对服务器发出的Ajax请求是异步执行的,因此ajax方法实际上返回一个表示请求本身的对象,而不是来自服务器的实际响应。

  

jQuery 1.5中$ .ajax()返回的jQuery XMLHttpRequest(jqXHR)对象是浏览器的原生XMLHttpRequest对象的超集。

您可以改为使用success回调:

function getString(string) {
    return $.ajax({
        type : 'POST',
        url : 'scripts/getstring.php',
        data : { 'string': string }
        success: function(result) {
            alert(result);
        },
    });
};

或者如果您想要更灵活,可以将回调函数作为参数:

function getString(string, callback) {
    return $.ajax({
        type : 'POST',
        url : 'scripts/getstring.php',
        data : { 'string': string }
        success: callback,
    });
};

getString('test', function(result) {
    alert(result);
})

答案 1 :(得分:1)

您正在返回一个jQuery jqXHR对象。

如果您要处理HTTP响应中的数据,则需要添加done(或success处理程序。

blub.done(function (data) { 
    alert(data);
});

答案 2 :(得分:0)

object Object是预期的响应,因为返回的数据和对象。

如果要查看生成的对象,请尝试:

console.log(blub)代替并在控制台中查看。

这可以帮助您确定要在对象中检索的数据的正确路径。