5

ここにコードを貼り付けました。$。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);
4

3 に答える 3

14

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
于 2012-10-17T08:37:29.057 に答える
7

jQuery1.8以降を使用していると思います

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

細字をお読みください。

jQuery 1.8以降、jqXHR($ .Deferred)でのasync:falseの使用は 非推奨になりました。

complete / success/errorコールバックを使用する必要があります。

試す

http://jsfiddle.net/UgrLE/

于 2012-10-17T08:33:43.753 に答える
3

Twitterで作業していない限り、「クロスドメインリクエストとdataType:「jsonp」リクエストは同期操作をサポートしていない」ため、失敗していると思います。

非推奨の!=削除されました。非推奨になったとしても、ここでは使用されていない、返されたjqXHRのコンテキストにあります。

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

@Muraliが回避策を提供しているように見えますが、同じドメインのリクエストで問題が発生している場合は、上記を指摘することが重要です。

于 2015-08-05T19:05:14.730 に答える