2013-03-02 17 views
2

Я разрабатываю небольшое расширение хром Google, которое экранирует определенный веб-сайт. Проблема заключается в том, что, поскольку, что веб-сайт использует относительные пути ссылки порваться, я получаю много ошибок, как это:Обработка относительных путей изображения 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

+0

У меня такая же проблема. Ответ имеет ссылку на изображение, но я только анализирую текст ответа HTML. Однако jQuery все еще пытается получить эти изображения. –

ответ

5

Решение состоит в том, чтобы не использовать jQuery для анализа документа. Вы можете использовать jQuery.ajax, если хотите, но не используйте $, чтобы разобрать результат.

Прочтите ответ Console shows error about Content Security policy and lots of failed GET requests, чтобы понять и решить вашу проблему.

Ответ настоятельно рекомендует использовать ванильный 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

+1

@ JoãoPenetra Я имел в виду, что jQuery не следует использовать для анализа HTML, как в '$ (' результат, возможно содержащий ')'. Хорошо использовать jQuery для получения ответа, но проанализируйте HTML, используя что-то еще, например метод, показанный в моем ответе. –