2016-04-01 5 views
3

Итак, я создаю расширение Chrome, которое принимает изображения с текущих вкладок и отправляет эти изображения на сервер для размещения изображения. Он отлично работает для многих сайтов, но на таких крупных сайтах, как Instagram и Pinterest, он не будет работать, потому что браузер блокирует смешанный контент (HTTP и HTTPS). Я получаю следующее сообщение об ошибке в консоли:Расширение Chrome - Отключить блокировку смешанного содержимого

Mixed Content: The page at 'https://www.instagram.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint. This request has been blocked; the content must be served over HTTPS. 

Я проверил этот пост и он не появляется, чтобы помочь мне в отношении расширений spcifically: https://productforums.google.com/forum/#!topic/chrome/OrwppKWbKnc

Кроме того, я пытался добавить URL сервера к разрешениям в manifest.json, и это тоже не помогло мне.

Мой вопрос заключается в следующем: существует ли у меня возможность расширения Chrome, позволяющего использовать смешанный контент только для моего сервера или мой единственный вариант - переключить мой сервер на HTTPS?

ответ

8

Если вы отправляете http-запрос из сценариев контента, так как он живет в том же контексте с веб-страницей, он будет ограничен , что является поведением браузера.

Вы можете переместить ваш запрос HTTP от content scripts к background page (либо Message Passing или какой-либо другой триггер, как browser Action), так как background page жизни в контексте расширения, в то время как само по себе расширение может обойти СОП, добавив URL сервера разрешений.

Смежные вопросы