Рейтинг:0

CORS не позволяет js window.onerror получать информацию о поддоменах

флаг us

Чтобы регистрировать ошибки Javascript, я настроил функцию с window.onerror, которая запускает запрос ajax и сообщает мне об ошибках сценария. Я загружаю все свои статические файлы из поддомена, и если возникает ошибка из файла за пределами основного домена, CORS, похоже, удаляет информацию из-за утечки... https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#notes

Я попытался решить проблему, настроив Access-Control-Allow-Origin следующим образом:

add_header Access-Control-Allow-Origin https://static.example.com;

но безуспешно.

Мой поддомен также содержит Access-Control-Allow-Origin с основным доменом.

Заголовок документа:

URL запроса: https://www.example.com/de/kontaktformular.html
Метод запроса: ПОЛУЧИТЬ
Код состояния: 200 
Удаленный адрес: ХХХ
Политика реферера: строгое происхождение при перекрестном происхождении
происхождение разрешения-управления-доступом: https://static.example.com
управление кешем: без сохранения, без кеша, с обязательной повторной проверкой
кодировка содержимого: br
политика безопасности контента: ...
тип содержимого: текст/html; кодировка = UTF-8
дата: вторник, 10 августа 2021 г., 10:21:35 по Гринвичу
ожидаем-кт: принудительно, макс-возраст = 30
истекает: четверг, 19 ноября 1981 г., 08:52:00 по Гринвичу
прагма: без кеша
реферальная политика: того же происхождения
сервер: nginx
строгая транспортная безопасность: max-age=15768000; includeSubDomains
варьироваться: Accept-Encoding
x-content-type-options: nosniff
параметры x-frame: SAMEORIGIN
x-xss-защита: 1; режим = блок
:авторитет: www.example.com
:метод: ПОЛУЧИТЬ
:путь: /de/kontaktformular.html
:схема: https
принимать: текст/html, приложение/xhtml+xml, приложение/xml; q = 0,9, изображение / avif, изображение / webp, изображение / apng, */*; q = 0,8, приложение / подписанный обмен; v = b3; р=0,9
принять кодировку: gzip, deflate, br
принять-язык: de-IT,de;q=0.9,en-US;q=0.8,en;q=0.7,de-DE;q=0.6
кеш-контроль: без кеша
куки: __Host-PHPSESSID=k2284o6ejliq4t9113bicbv5tr; cookie_alert=1; тележка = MjMtLC03OC0sLTF8fDU1LSwtMTI3LSwtMXx8NTUTLC0xMjgtLC0x
прагма: без кеша
реферер: https://www.example.com/de/XXX.html
sec-ch-ua: "Chromium";v="92", "Не бренд";v="99", "Google Chrome";v="92"
сек-ч-уа-мобиль: ?0
sec-fetch-dest: документ
sec-fetch-mode: навигация
sec-fetch-site: того же происхождения
сек-выборка-пользователь: ?1
небезопасные запросы на обновление: 1
пользовательский агент: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/92.0.4515.131 Safari/537.36

Заголовок файла Js, который поступает из поддомена:

URL-адрес запроса: https://static.example.com/jquery_scripts.128.js
Метод запроса: ПОЛУЧИТЬ
Код состояния: 200 
Удаленный адрес: ХХХ
Реферальная политика: тот же источник
происхождение разрешения-доступа: https://www.example.com
кеш-контроль: общедоступный, max-age=31536000, s-maxage=31536000
кодировка содержимого: gzip
тип содержимого: текст/javascript; кодировка = UTF-8
дата: вторник, 10 августа 2021 г., 10:21:35 по Гринвичу
истекает: ср, 10 августа 2022 г., 10:21:35 по Гринвичу
последнее изменение: вторник, 10 августа 2021 г., 09:38:16 GMT
сервер: nginx
строгая транспортная безопасность: max-age=15768000; includeSubDomains
варьироваться: Accept-Encoding
x-content-type-options: nosniff
:авторитет: static.example.com
:метод: ПОЛУЧИТЬ
:путь: /jquery_scripts.128.js
:схема: https
принимать: */*
принять кодировку: gzip, deflate, br
принять-язык: de-IT,de;q=0.9,en-US;q=0.8,en;q=0.7,de-DE;q=0.6
кеш-контроль: без кеша
прагма: без кеша
sec-ch-ua: "Chromium";v="92", "Не бренд";v="99", "Google Chrome";v="92"
сек-ч-уа-мобиль: ?0
sec-fetch-dest: скрипт
sec-fetch-mode: без корреспонденции
sec-fetch-сайт: тот же сайт
пользовательский агент: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/92.0.4515.131 Safari/537.36
Michael Hampton avatar
флаг cz
У вас есть дополнительная несвязанная проблема: ваш статический файл `/de/kontaktformular.html` обслуживается PHP. Вероятно, это ошибка в вашей конфигурации nginx.
delato468 avatar
флаг us
@MichaelHampton спасибо за ваш вклад, документ не статичен. Я не могу сделать документ статическим, потому что у меня есть динамический контент, такой как логин и т. д. Пожалуйста, сообщите мне, если я ошибаюсь в вашем вводе, и я могу улучшить конфигурацию nginx.
Michael Hampton avatar
флаг cz
Хорошо, если это не статический файл, тогда проблем нет.
Рейтинг:2
флаг in

От та же документация:

Если сервер отправляет ответ с Access-Control-Allow-Origin значение, которое является явным источником (а не подстановочным знаком «*»), то ответ также должен включать Отличаться заголовок ответа со значением Origin — чтобы указать браузерам, что ответы сервера могут различаться в зависимости от значения заголовка запроса Origin.

Access-Control-Allow-Origin: https://developer.mozilla.org
Варьировать: Происхождение
delato468 avatar
флаг us
Я добавил Vary: Origin, но не смог заменить заголовок «vary: Accept-Encoding». Итак, у меня есть оба заголовка «происхождение» и «принять кодировку». К сожалению, это не работает, и я до сих пор не получаю сообщения об ошибках.
delato468 avatar
флаг us
Хорошо, мне пришлось добавить `https://WWW.example.com` в мои статические файлы, не уверен на 100%, почему, но теперь он работает вместе с «vary».

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.