У меня есть встроенное приложение Shopify с React (Polaris) на внешнем интерфейсе и Node (Koa. js) на внутреннем. Одной из функций приложения является экспорт некоторой информации в виде электронной таблицы Excel.
Для создания файла я использую пакет xlsx и file-saver для скачать это. Все отлично работает в Chrome (v 80.0.3987.132), но в Firefox (v 73.0) я получаю следующую ошибку при нажатии на кнопку для загрузки файла:
Content Security Политика: параметры страницы заблокировали загрузку ресурса в blob: https://... («frame-src»).
Поскольку это встроенное приложение, оно выполняется внутри iframe. Основываясь на сообщении об ошибке, я подумал, что политика безопасности содержимого для больших двоичных объектов внутри iframe блокирует загружаемый файл, поэтому я добавил koa-шлем в свой бэкэнд со следующими параметрами:
const Koa = require('koa');
const KoaHelmet = require('koa-helmet');
const server = new Koa();
server.use(KoaHelmet({
frameguard: false,
contentSecurityPolicy: {
directives: {
frameSrc: ["'blob'"]
}
}
}));
Я также пытался frameSrc: ["'blob:'"]
, frameSrc: ["'blob:;'"]
, 'frame-src': ["'blob'"]
, 'frame-src': ["'blob:'"]
, 'frame-src': ["'blob:;'"]
, но ни один из них не решил проблему.
Чего мне не хватает?