Firefox не загружает правильный файл на машину - PullRequest
0 голосов
/ 02 октября 2018

У меня есть созданное мной приложение реагирования, которое использует redux, реагируют на маршрутизаторы v4 и d3 для визуализации данных.Мое приложение содержит форсированный график, таблицу и гистограмму.Каждое из этих представлений содержит кликабельные узлы, ячейки таблицы и столбцы, которые при щелчке файла должны загружаться на компьютер пользователя.Недавно я обновил Firefox до последней версии 62.0.2, и загрузка больше не функционирует, как ожидалось, однако она все еще работает в Chrome.Файлы находятся в том же домене, что и приложение, и я закодировал загрузку, чтобы функционировать так:

    let newlink = document.createElement('a');
    newlink.setAttribute('download', 
 'https://www.example.com/docs/xml/file1.xml');
    newlink.setAttribute('href', 'https://www.example.com/docs/xml/file1.xml');
    newlink.setAttribute('target', '_blank');
    document.body.appendChild(newlink);
    newlink.click();

Что Firefox делает, это загружает файл index.html в корень моего приложения, а не то, чтов переменной url (например, https://www.example.com/docs/xml/file1.xml).. В диалоговом окне показано, что на самом деле он пытается сохранить файл с правильным именем (Firefox автоматически заменил символ '/' на подчеркивания, чтобы сохранить файл. Домен правильный,но местоположение не содержит полного URL-адреса файла. Что-то происходит с каким-то образом обрезанным полным URL-адресом?

Тип в диалоговом окне - HTML (что неверно, все мои файлы либо XMLили txt), и если пользователь выбирает сохранить или открыть, он сохраняет index.html или открывает пустую / черную веб-страницу. Я схожу с ума, пытаясь выяснить, что здесь происходит. Пожалуйста, помогите!

enter image description here

1 Ответ

0 голосов
/ 03 октября 2018

То, что в итоге исправило это в Firefox, - это отмена регистрации работника сервиса из домена приложения путем перехода к about: serviceworkers (в firefox).Затем я прокомментировал рабочую функцию службы регистрации в своем коде пользовательского интерфейса, потому что я все равно не использую их для этого приложения.По какой-то причине работник службы перехватывал загрузку файла и заставлял браузер загружать файл index.html, а не текстовый файл, который он должен был.Как только я сделал эти две вещи, файл был загружен правильно.Если бы кто-нибудь знал, почему это так, я бы с удовольствием прокомментировал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...