2

我需要使用 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 Object { readyState=1, getResponseHeader=function(), getAllResponseHeaders=function(), more...},其中 responceText 是,例如,teacher。这是从萤火虫复制的响应:

readyState
    4

responseText
    "teacher"

status
    200

statusText
    "OK "
4

2 回答 2

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 调用的结果。
这就是异步调用的工作方式!

编辑:

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

于 2013-09-15T14:24:41.873 回答
2

你也可以这样做:

$.post('user_helper/return_current_role', {id: 3}, function(data) {
   var role = data; 
   // Now Do what you need
}, "json");
于 2013-09-15T14:27:34.110 回答