Переадресация HTTP на https заблокирована политикой CORS - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь выполнить запрос GET (или POST) к серверу localhost из окна консоли инструментов разработчика chrome, запущенного на веб-сайте с https (в данном случае outlook.com, но то же самое для любого https). Если я запускаю тот же код с веб-сайта, который работает на http, он работает нормально.

Ошибка, которую я получаю:

Не удалось загрузить http://127.0.0.1:5000/: Перенаправление с 'http://127.0.0.1:5000/' на' https://127.0.0.1:5000/' заблокировано политикой CORS: заголовок «Access-Control-Allow-Origin» отсутствует запрашиваемый ресурс. Источник 'https://outlook.live.com' поэтому не имеет доступа.

Я обнаружил, что обмен https с http невозможен, но запуск сервера флеш-памяти по https также не помогает, в этом случае Flask даже не распознает входящий запрос.

У меня запущено приложение Flask, код:

from flask import Flask
from flask import request
from flask_cors import CORS

app = Flask(__name__)

CORS(app)

@app.route("/", methods=['GET', 'POST'])
def foo():
    return "bar"


if __name__ == "__main__":
    app.run()

JavaScript, который я использую для запроса:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        console.log(xhttp.responseText);
    }
};
xhttp.open("GET", "http://127.0.0.1:5000/", true);
xhttp.send();

Я знаю, что есть много похожих вопросов, но ни одно из опубликованных решений для меня не сработало, как мне создать успешный запрос GET или POST из инструментов разработчика chrome, запущенных на веб-сайте https, на сервер localhost (предпочтительно Flask)

1 Ответ

0 голосов
/ 02 мая 2018

При запуске приложения Flask с ssl_context='adhoc' для использования https:

Это был браузер, блокирующий https, потому что сертификат был небезопасным.

Этот ответ (размещенный здесь ) работал для меня:

НЕ ДЛЯ ПРОД

Просто вставьте это в свой хром:

chrome://flags/#allow-insecure-localhost Вы должны увидеть выделенный текст, говорящий: Разрешить недействительные сертификаты для ресурсов, загруженных с localhost

Нажмите Включить.

Кроме того, в этом блоге объясняется больше об использовании Flask с сертификатами.

...