После обновления до 21.10 я столкнулся с проблемой CORS с HTML-страницей, которая использует Javascript fetch() для ПОЛУЧЕНИЯ страницы с сервера. На той же странице нет проблем с Chromium до 21.10 (или Firefox или Safari на OSX).
Глядя на инспектора, кажется, что разница в том, что «Snap Firefox»:
- имеет другое значение для заголовка REFERER (оно сокращается до http://127.0.0.1:5000/ вместо http://localhost:5000/resource/527706d7e339cac99572cad1b7b789c8 в рабочих браузерах);
- есть заголовок ORIGIN со значением http://127.0.0.1:5000, чего нет в работающих браузерах
У кого-нибудь есть идеи, почему Snap Firefox делает это и как это можно решить?
ОБНОВЛЕНИЕ / ОТВЕТ:
тл/др; это сводится к разнице между 127.0.0.1 и локальным хостом, но с изюминкой.
Прежде всего, ошибка CORS возникает только при 127.0.0.1, а не при локальном хосте. Я использовал localhost в разработке, поэтому не знал об этом различии.
Во-вторых, Snap Firefox не любит «localhost: 5000». Вот почему я обнаружил, что страница не работает.Он действительно хочет, чтобы вы добавили протокол -> "http://localhost:5000" работает. По-видимому, нет правила, согласно которому localhost должен разрешаться в http://localhost, поэтому Snap Firefox не ошибается.
Однако Firefox на OS X делает принять «localhost: 5000» (с автоматическим добавлением префикса http://) — так же, как Safari в OS X или Chromium в Ubuntu. Кажется, Snap Firefox — единственный нет добавление строки http://. И я совершенно уверен, что это изменение между Ubuntu 20.04 и 20.10.
Ради согласованности я бы сказал, что Snap Firefox должен вернуться к старому поведению (которое совместимо с OS X Firefox), но, вероятно, есть веские причины этого не делать.