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

Mau*_*ora 5 ajax jquery asynchronous

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

Mur*_*san 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
Run Code Online (Sandbox Code Playgroud)


Nev*_*ver 7

我猜你使用的是jQuery 1.8+

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

请阅读细则.

在jQuery 1.8,采用异步的:假以jqXHR($ .Deferred)被 弃用 ;

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

尝试

http://jsfiddle.net/UgrLE/

  • 我不明白为什么这是一个公认的答案.该问题与版本无关.@Murali提供了正确的答案. (3认同)