2009-02-09 17 views
0

我有以下Rails的鏈接生成代碼非工作的Rails在Firefox

鏈接(我可能刪除「行業祕密」的東西,遺憾的名字真怪,但變量名的長度和值匹配)

<%= link_to_remote "FOUR", :method => "get", :url => {:action => "testing01_four_log_info", :fourth_name => "LA1", :testing01_num => "123"} %> 

此代碼生成:

new Ajax.Request('/traffic/testing01_four_log_info?testing01_num=123&fourth_name=LA1', {asynchronous:true, evalScripts:true, method:'get'}); 

的問題是,該鏈接的作品,並在IE和Safari和Chrome和Opera點擊時返回值。它不是從Firefox(版本3.0.6)。事實上,Firebug控制檯似乎表明甚至沒有發送任何內容。但是,當我點擊鏈接時,:before代碼(我從上面的link_to_remote代碼中刪除)確實得到執行。

那麼,我做錯了什麼?

編輯:好的,所以在處理這個問題後,更多的是與Firefox的問題以及它如何處理代碼。我可以直接從Firefox內部請求URL,它可以工作。因此,這可能是Firefox的錯誤或者是我的代碼的錯誤。咄! :)作爲一個方面說明,我曾遇到過這個問題一次。在這種情況下,雖然這是因爲URL太長,在這種情況下,Apache並不高興。在這種情況下,Firefox對某事並不滿意。

使用Wireshark進行調試表明沒有任何東西通過電線。其他鏈接將穿過電線,但不是這一個。僅限Firefox。

編輯:解決。 Adblock Plus是罪魁禍首。禁用它爲我的網站解決了這個問題。謝謝你堆棧溢出!

+0

要麼你沒有粘貼實際生成的所有東西,要麼就是非常非常非常破壞。請檢查您粘貼的內容實際上是什麼產生的。 – womble 2009-02-09 20:56:10

+0

我更新了。對錯誤抱歉。我對JavaScript真的非常可悲。 – 2009-02-09 21:13:38

回答

2

當真的很奇怪的事情發生時,是時候仔細檢查一下顯而易見的事情了。

  • 您是否在Firefox中啓用了JavaScript?
  • 您是否安裝了NoScript或 類似的東西?
0

我有類似的問題,因爲Firefox緩存XHR響應。我必須將正確的HTTP頭添加到響應中(C代碼正在生成響應)。有些只適用於IE,一些適用於Firefox。但你說緩存不是這裏的情況。請仔細檢查一下。

其他可能的情況。瀏覽器限制併發連接到服務器的數量。只有2個可能在同一時間。所以如果你有一些與你的網絡服務器沒有關閉的連接,那麼Firefox會等待它們完成並暫停你的XHR請求。

有時防病毒/本地防火牆程序可能會導致類似的問題。然而,當您的請求直接從地址欄加載時,這種情況不太可能發生。

如果一切都失敗了,那麼你只需要逐行跟蹤原型lib代碼並查看你的請求被阻塞的位置。你確定Ajax代碼按預期執行嗎?