这里我粘贴了我的代码,我想返回$ .ajax的响应作为函数a()的响应。但是在结果出现ajax调用之前,它返回空f。请帮忙解决这个问题
a = function()
{
var f = '';
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=immaulikvora&count=1&page=1&include_entities=1&callback=?',
dataType: 'json',
async: false,
success: function(data) {
f = data;
}
});
return f;
};
var lid = a();
alert(lid);
答案 0 :(得分:11)
请将ajax分配给jqXHR对象,阅读responseText会对你有帮助。
var jqXHR=$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=immaulikvora&count=1&page=1&include_entities=1&callback=?',
dataType: 'json',
async: false
});
jqXHR.responseText // This will give you the result
答案 1 :(得分:7)
我猜你正在使用jQuery 1.8 +
http://api.jquery.com/jQuery.ajax/
请阅读细则。
从jQuery 1.8开始,使用async:false和jqXHR($ .Deferred) 的弃用强>;
您必须使用完整/成功/错误回调。
尝试
答案 2 :(得分:2)
除非您为推特工作,否则我认为它失败了,因为" 跨域请求和dataType:" jsonp"请求不支持同步操作。"
已弃用!=已删除,即使已删除,我也会在已返回的jqXHR的上下文中进行弃用,此处未使用。
http://api.jquery.com/jQuery.ajax/
看起来@Murali提供了解决方法,但上述内容对于那些遇到同域请求问题的人来说非常重要。