无法从$ .post获取responseText

时间:2013-09-15 14:22:11

标签: jquery ajax

我需要使用jquery $ .post从服务器获取一个字符串,问题是我无法从中获取responseText。 所以如果我跑

role = $.post('user_helper/return_current_role', {id: 3}, null, "json").responseText;
console.log(role);

我得undefined 如果我试试

role = $.post('user_helper/return_current_role', {id: 3}, null, "json");
console.log(role);

我得到一个对象Object { readyState=1, getResponseHeader=function(), getAllResponseHeaders=function(), more...},其中responceText例如是teacher。 这是从firebug复制的回复:

readyState
    4

responseText
    "teacher"

status
    200

statusText
    "OK "

2 个答案:

答案 0 :(得分:4)

由于它是异步的,并且具有回调函数,如何:

$.post('user_helper/return_current_role', {id: 3}, function(result) {
    var role = result;
    console.log(role);
}).fail(function(a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
});

在从服务器返回之前,您不能使用ajax调用的结果 这就是异步调用的工作方式!

修改

链接失败方法,看看它是否告诉你什么?

答案 1 :(得分:2)

你也可以这样做:

$.post('user_helper/return_current_role', {id: 3}, function(data) {
   var role = data; 
   // Now Do what you need
}, "json");