用async false调用jQuery ajax是行不通的

在这里我粘贴了我的代码,我想返回$ .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); 

我猜你使用的是jQuery 1.8+

http://api.jquery.com/jQuery.ajax/

请阅读细则。

从jQuery 1.8开始,不推荐使用async:false和jqXHR($ .Deferred);

您必须使用完整/成功/错误回调。

尝试

http://jsfiddle.net/UgrLE/

请将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 

除非你为twitter工作,否则我认为它失败了,因为“ 跨域请求和dataType:”jsonp“请求不支持同步操作。”

已弃用!=已删除,即使已删除,我也会在返回的jqXHR的上下文中进行弃用,此处未使用。

http://api.jquery.com/jQuery.ajax/

看起来@Murali提供了解决方法,但上述内容对于那些遇到同域请求问题的人来说非常重要。