Мы поддерживаем приложение, пользовательский интерфейс которого содержит QWebEngineView
. Страницы, отображаемые в этом представлении, взяты из пакета локальных ресурсов, то есть URL-адресов, таких как qrc: //mypage.html.
Некоторые JS со страницы делают window.fetch(https://some.thi.ng)
некоторые URL-адреса на интернет-серверах с включенным CORS в веб-просмотре.
Все работало нормально с Qt 5.9.6. Тем не менее, обновление до Qt 5.12.1 привело к ошибке CORS:
Не удалось загрузить https://some.thi.ng: 'Access-Control-Allow-Origin'
заголовок имеет значение 'qrc: //', которое не равно указанному источнику.
Поэтому для источника 'qrc: //' доступ запрещен.
Ну, похоже, что он жалуется qrc: // не равно qrc: //.
Используя отладчик webview chrome, мы действительно можем подтвердить, что запрос отправил заголовок Origin
со значением qrc: // , и что ответ содержал заголовок Access-Control-Allow-Origin
с таким же значение.
При чтении ссылки на MDN кажется, что это должно соответствовать всем критериям, и что запрос должен выполняться браузером без ошибок.
Проблема в том, что qrc://
не является действительным источником? Ошибка с обновленным хромом Qt?