2013-03-02 128 views
2

我正在開發一個小的Google Chrome擴展程序,該屏幕會刮擦某個網站。問題是,因爲網站使用相對路徑的鏈接會斷裂,我得到很多的錯誤是這樣的:處理相對圖像路徑ajax

GET chrome-extension://higopdenpioddpmobbehnbcadeenihic/html/images/ico_aAO.gif 
GET chrome-extension://higopdenpioddpmobbehnbcadeenihic/html/images/ico_dAO.gif 

有什麼辦法,以避免這些錯誤?

我使用使得GET調用的代碼是:

$.ajax({ 
     url: searchUrl, 
     type: "GET", 
     data: { 
      'pal': query 
     }, 
     success: function() { 
     }, 
     error: function() { 
     } 
    }); 

謝謝!

+0

您正在通過Ajax獲得的圖像,並在此過程中不小心使在Chrome擴展的圖像的請求? – Whymarrh 2013-04-03 17:37:01

+0

我有同樣的問題。該響應具有鏈接到圖像,但我只解析響應HTML文本。不過,jQuery仍然嘗試獲取這些圖像。 – 2013-04-03 18:06:49

回答

5

解決方案是不使用jQuery來解析文檔。如果需要,您可以使用jQuery.ajax,但不要使用$解析結果。

閱讀Console shows error about Content Security policy and lots of failed GET requests的答案,瞭解並解決您的問題。

答案強烈建議使用vanilla JavaScript。如果你想仍然使用jQuery,使用下面的DOM解析方法:

// responseText is a string, for example from calling jQuery.ajax 
var doc = document.implementation.createHTMLDocument(''); 
doc.documentElement.innerHTML = responseText; 
var $doc = $(doc); 
// Enjoy the parsed document without errors! 
+0

無論我使用jQuery還是$進行ajax調用都沒有關係,創建中間文檔的訣竅是什麼。謝謝! – jmpenetra 2013-04-06 15:39:36

+1

@JoãoPenetra我的意思是jQuery不應該用來解析HTML,就像'$('結果可能包含')'一樣。使用jQuery獲取響應是很好的,但是使用其他方法解析HTML,比如我的答案中顯示的方法。 – 2013-04-06 15:41:26