У меня есть сценарий содержимого, который включает компонент jquery ui, и я хочу отправить данные на мой сервер с http сообщение. Однако я понял, что вы не можете отправить сообщение http сообщение на https-сайт или наоборот. Если я отправлю свое сообщение на фоновый скрипт и сообщение от него, у меня будет проблема? Будет ли это иметь значение, если сайт http или https? Если это имеет значение, как я могу это сделать?Расширение Chrome Расширение фона и содержимого сценария
ответ
Если вы отправляете из фонового сценария нет никаких проблем с переключением протоколов, но вы должны были объявить разрешение на эти адреса:
видеть больше at the google manifest documentation и это duplicated question
Да, вы может использовать HTTP POST, а также любой другой метод http (например, GET, PUT, PATCH) в сценарии содержимого, а также фоновый сценарий.
Однако в обоих случаях URL-адрес, по которому вы отправляете свой запрос, должен быть объявлен в разрешениях вашего расширения. Вы делаете это в манифесте. Например, если вы хотите, чтобы посылать запросы HTTP в http://www.some-domain.com, необходимо добавить, что URL (или шаблон, соответствующий этому URL) в permissions
массив манифеста:
{
...
"permissions": [
"http://www.some-domain.com/*"
],
"name": "Test",
"manifest_version": 2,
"version": "0.0.0"
}
Вы можете добавить дикие карты в свой URL шаблоны разрешений; таким образом, если вы хотите совместить как https, так и http, вы можете сделать что-то вроде *://www.some-domain.com/*
. See the official literature here.
Я должен предупредить вас, что если вы прикрепляете скрипт контента к странице, которая была загружена как https, а не http, вам, скорее всего, не удастся отправить незащищенный HTTP-запрос из-за блокировки Chrome смешанным контентом, что я считаю требуется переопределение пользователя. Таким образом, хорошее эмпирическое правило: если вы прикрепляете свой контентный скрипт к странице, загруженной через http, то используйте http для отправки запроса; если вы прикрепляетесь к странице, загруженной через https, используйте https.
Последний совет: не забудьте перезагрузить расширение после того, как вы изменили манифест, или изменения разрешения не будут отображаться. Чтобы перезагрузить расширение, перейдите на страницу chrome://extensions
, найдите расширение и нажмите кнопку перезагрузки.
Спасибо очень полезная информация, но это похоже на обходной путь. Я предпочитаю отправить свое сообщение на задний план и отправить запрос на отправку таким образом, но спасибо за информацию и советы в любом случае! – mert
Это не обходной путь; это единственный способ сделать это. Единственный способ, которым вам будет разрешено отправлять HTTP-запросы в домен за пределами вашего происхождения chrome-extension, - это объявить шаблон соответствия URL-адресов в вашем манифестах, независимо от того, возник ли запрос в фоновой странице/скрипте или в скрипте содержимого , –
- 1. Расширение Chrome Расширение содержимого Script
- 2. Расширение содержимого с расширением содержимого Расширение Chrome без фоновой страницы?
- 3. Расширение Chrome для уменьшения фона
- 4. Расширение для Chrome-сообщений: от введенного сценария до фона
- 5. Запуск события клика из сценария содержимого - расширение chrome
- 6. Как определить, включено ли расширение расширения Chrome из сценария содержимого?
- 7. Расширение Chrome, не отображающее данные из сценария содержимого
- 8. Расширение Chrome: вставьте кликабельное изображение с использованием сценария содержимого
- 9. Расширение Chrome: chrome.runtime.sendMessage и XMLHttpRequest();
- 10. Событие, не запускающее скрипты содержимого Расширение Chrome Расширение
- 11. Динамическая загрузка скрипта содержимого (расширение chrome)
- 12. Расширение Chrome расширение всплывающее окно
- 13. Расширение Chrome Расширение текущего окна
- 14. Установите расширение Google Chrome из сценария
- 15. Расширение Chrome для автоматического обновления выборочного сценария
- 16. расширение Chrome, расширение хром связи
- 17. Расширение Chrome Расширение рабочего стола
- 18. Расширение Chrome и mysql
- 19. Расширение Chrome: есть расширение изменить его web_accessible_resources
- 20. Расширение Chrome - Отключить блокировку смешанного содержимого
- 21. Расширение Chrome: отладка содержимого скрипта перед упаковкой
- 22. Расширение Chrome
- 23. Расширение Chrome: загрузка/экспорт содержимого «на лету»
- 24. Расширение Chrome XMLHttpRequest: директива политики безопасности содержимого
- 25. Расширение Google Chrome для проверки содержимого домена
- 26. Расширение Chrome или Chrome?
- 27. Расширение Gmail Chrome и document.readyState
- 28. Невозможно установить расширение Chrome
- 29. Расширение Chrome - событие щелчка
- 30. CodeMirror Функции и расширение сценария
Не тот же вопрос. Кажется, я не могу отправить сообщение сообщения на мой сервер, если он является http, а один - https, что бы вы ни добавили в манифест. Но вы правы в том, что я могу отправить их из фона. Я попробовал это сейчас, и это сработало! Спасибо – mert