我需要使用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 "
答案 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");