2008-10-09 80 views
1

我正在調試一個大型的,複雜的網頁,它有很多JavaScript,JQuery,Ajax等等。在那個代碼的某處,我得到了一個調用服務器根目錄的rouge請求(我認爲它是一個空img)。我知道它不在html或css中,我非常確信JavaScript代碼中的某個地方正在創建請求,但我無法跟蹤它。我習慣於使用螢火蟲,VS和其他調試工具,但我正在尋找一些方法來找出執行的地方 - 以便我可以在大約150個.js文件中找到有問題的行。JavaScript中的請求來自哪裏?

除了在gazzillion控制檯輸出'你現在在這裏'之外,有沒有人有一個調試工具的建議,可以突出顯示Javascript請求到外部資源的位置?任何其他想法?

步步調試將採取年齡 - 我必須小心我踏入(jQuery的源 - 議員),我可能會錯過關鍵時刻

+0

這應該被標記爲'jQuery'。 – 2008-10-11 20:37:27

+0

WTHeck是一個'魯莽請求'? – alexvance 2012-08-24 15:49:59

回答

2

有關使用一步一步的腳本調試器是什麼在Firebug中?

我也認爲這可能是Firebug的一個非常有趣的增強功能,可以在AJAX調用中添加斷點。

0

如果它的HTTPRequest發送到Web服務器,我會建議在Firefox上使用TamperData插件。只需安裝插件,啓動篡改數據,發送的每個請求都會首先被提示篡改/繼續/中止。

訪問this page at Mozilla website

+0

我試過了。這是一個很酷的加載項,但並不告訴我在JavaScript中的請求來自 – 2008-10-10 10:13:39

1

你剛纔談到的jQuery源...

假設請求經過了jQuery,把調試語句中的jQuery源的get()函數,那球,如果網址爲「 /」。也許你可以從調用堆棧中知道。

1

您可以使用Firebug控制檯查看通過JavaScript完成的所有HTTP請求。

如果你想手動跟蹤所有的HTTP請求,您可以使用此代碼:

$(document).bind('beforeSend', function(event, request, ajaxOptions) 
{ 
    // Will be called before every jQuery AJAX call 
}); 

欲瞭解更多信息,請參閱jQuery documentation on AJAX events

0

只是猜測在這裏,但你使用ThickBox?它試圖在代碼的開頭正確加載圖像。

我會做的第一件事是檢查這個rouge請求是否是通過Firebug中的Net面板的Ajax請求或圖像加載請求。

如果它是Ajax,那麼你可以用你自己的方式重載$ .ajax函數,並做一個strack跟蹤幷包含在切換到原始$ .ajax之前請求的URL。

如果它是一個圖像,它不是理想的,但如果你可以響應圖像請求與服務器端睡眠(即只需睡20秒的PHP文件),你可能能夠掛起應用程序,並獲得一個開始猜測問題可能在哪裏。