2012-12-05 47 views
0

我無法獲得這個$ .ajax函數在Chrome中工作。當我發出ajax請求時,永遠不會返回響應。當我在Chrome開發工具中查看它時,它表示json請求仍在等待處理。到目前爲止,我已經找到了將這些參數添加到選項的建議。爲什麼這個jQuery ajax調用工作在Chrome中

'{類型: 「郵報」 的數據: '',緩存:假的,異步:假}'

然而,所有的這些選項使它工作。

 try { 
      var o = {username: 'adobeedge', count: 4}; 
      var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count; 

      $("body").append('<p>attempting ajax</p>'); 

      $.ajax({url: twitterUrl, 
       dataType: 'jsonp', 
       type: "post", 
       data: '', 
       cache: false, 
       async: false, 
      }) 
        .success(function(data) { 

        $.each(data, function(index, item) { 
         $("body").append(item.text); 
        }); 
       }) ; 
     } 
     catch (error) { 
      alert("Error: " + error.toString()); 
     } 
+5

您是否看過開發工具中的請求/響應以查看可能發生了什麼?控制檯中是否有錯誤? –

+0

你能比「不起作用」更具體嗎?它是失敗還是你獲得了你不期望的結果?任何錯誤消息或HTTP代碼? –

+1

適用於我...查看http://jsfiddle.net/vLYmY/3/ –

回答

0

我不知道這是否會有任何幫助,但我從來沒有見過附加在ajax調用外的成功函數。我看過的所有jQuery ajax文檔都顯示了附加到末尾的「.done」。不過,我只看到成功定義爲實際ajax調用本身內的選項。你可以嘗試重寫它如下:

$.ajax({ 
    url: twitterUrl, 
    dataType: 'jsonp', 
    type: "post", 
    data: '', 
    cache: false, 
    async: false, 
    success: function(data) { 
     $.each(data, function(index, item) { 
      $("body").append(item.text); 
     }); 
    } 
}); 

看看是否有幫助。還有另一個Stack Overflow Article,這可能對你有一些幫助。本文介紹「成功:」與「.done」的不同用途。有關.ajax文檔的更多信息,請訪問.ajax的jQuery API文檔。

希望這會有所幫助。

+0

我已經試過了。當jQuery實現了一個名爲jqXHR的東西時,附加到接口外部的.success。 – user1214959

+0

我剛剛也發現了一些文檔。請注意,與此jqXHR對象關聯的諸如.success,.error等的回調在版本jQuery 1.8中已被棄用。您應該在其位置使用.done()和.fail()。 – War10ck

+0

當我將成功更改爲完成時,ajax調用在Chrome或Firefox中都不起作用。 – user1214959

0

jsonp不支持同步調用。嘗試async: true

我無法嘗試它,因爲我在辦公室裏工作,因爲twitter是被阻止的。

+0

這不起作用。 – user1214959

1

下面的代碼工作正常在我的情況

我的Chrome版本:23.0.1271.95米

try { 
     var o = {username: 'adobeedge', count: 4}; 
     var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count; 

     $("body").append('<p>attempting ajax</p>'); 

     $.ajax({url: twitterUrl, 
      dataType: 'jsonp', 
      type: "post", 
      data: '', 
      cache: false, 
      async: false, 
     }) 
       .success(function(data) { 

       $.each(data, function(index, item) { 
        $("body").append(item.text); 
       }); 
      }) ; 
    } 
    catch (error) { 
     alert("Error: " + error.toString()); 
    } 
0

我今天這個問題上爭奪一個完全使用補丁的Chrome瀏覽器在OSX 10.8.2,具有確切你描述的症狀。這是我通過Google可以找到的唯一問題。

原來這是由一個名爲Disconnect的隱私聚焦擴展引起的。

嘗試禁用擴展以查看是否解決了問題。希望這可以幫助。

相關問題