用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);
您必须使用完整/成功/错误回调。
尝试
请将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提供了解决方法,但上述内容对于那些遇到同域请求问题的人来说非常重要。