2013-03-02 125 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