Nano Hash - криптовалюты, майнинг, программирование

Отправка данных расширения Chrome на сервер Rails Cross-Origin XMLHttpRequest

В настоящее время я пытаюсь разработать расширение для Chrome, которое может извлекать текст с веб-страницы https на мой сервер, который работает только с http. Я просмотрел это руководство и этот вопрос.

Из этого я сделал вывод, что для того, чтобы у меня работал кросс-происхождение xhr, мне нужно

  1. установить разрешения манифеста, чтобы включить URL-адреса, на которые я ориентируюсь

Для этого мои разрешения выглядят следующим образом:

"permissions": [
    "tabs", "<all_urls>"
]

У меня были введены определенные URL-адреса, но мне пришлось удалить их после того, как я упаковал свой и изменил свой на «‹ all_urls >».

  1. создать XMLHttpRequest для указанного URL-адреса

Для этого отрывок моего кода выглядит так:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
   if (xhr.readyState == 4 && xhr.status == 200) {
        document.getElementById("response").innerText = xhr.responseText;
        console.log(xhr.responseText);
   }
};
xhr.open("POST", MY_SERVER_URL, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(message.toString());

MY_SERVER_URL — это действительный URL-адрес, который я проверял снова и снова, но по многим причинам я не могу указать этот вопрос ;(

message — это массив, содержащий ряд различных сообщений, которые я хотел бы отправить на свой сервер.

  1. упакуйте мой код расширения и установите его

Следуя руководству по упаковке от Google, я упаковал свою папку в файл .crx и перетащил сбросил его на мою chrome://extensions страницу для установки.

  1. на моем сервере установлен rack cors gem.

У меня есть следующая строка в моем Gemfile на сервере:

gem 'rack-cors', :require => 'rack/cors'

Тем не менее, я все еще получаю следующее сообщение об ошибке, когда пытаюсь отправить данные на свой сервер.

Mixed Content: The page at MESSAGE_PARSING_URL was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint MY_SERVER_URL. This request has been blocked; the content must be served over HTTPS.

Что я могу делать неправильно? Буду очень признателен за любую помощь. Спасибо


Ответы:


1

Если вы делаете небезопасный (http) запрос из скрипта содержимого защищенной страницы (https), вы получите ошибку Mixed Content.
У вас есть 3 варианта решения проблемы:

  1. Делайте безопасные запросы из скрипта контента на ваш сервер
  2. По-прежнему используйте небезопасные запросы, но делайте их из фонового скрипта. И передайте результат вашему скрипту содержимого, используя передачу сообщений.
  3. Запустите хром с флагом --allow-running-insecure-content. Но это не практичное решение, полезное только для разработки (когда ваша постановка находится на http).
18.01.2016

2

Вы должны применить сертификат для своего сервера и вместо этого использовать https. Согласно рекомендации W3C по совместному использованию ресурсов между источниками:

  1. Происхождение ресурса занесено в черный список.
  2. Известно, что источником ресурса является часть интрасети.
  3. URL-адрес ‹scheme> не поддерживается.
  4. Переход с https на http не разрешен.
  5. https не разрешено из-за ошибок сертификата
19.01.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..