Невозможно загрузить переменную в файл в любом браузере, кроме Chrome, с помощью AngularJS

Мне нужно разрешить пользователям загружать файл CSV, у меня есть CSV в виде строкового значения. Следующая функция работает в Chrome, но не в IE 10/11, Edge или Firefox.

function downloadCSV(CSV, fileName) {
        var data = "data:text/json;charset=utf-8," + encodeURIComponent(CSV);
        var downloader = document.createElement('a');

        downloader.setAttribute('href', data);
        downloader.setAttribute('download', fileName+'.csv');
        downloader.click();
    };

Это работает безупречно в Chrome.

Другие браузеры могут видеть переменную CSV в console.log, но не загружают ее. Edge выведет предупреждение в консоль с гигантской ссылкой, содержащей содержимое CSV, которое, если я нажму, покажу CSV как строковую переменную в окне отладчика. Firefox не выдает ошибок или предупреждений при срабатывании вышеуказанной функции.

Пробовал добавлять совместимость для разных браузеров, ничего не меняется.

<system.webServer>
    <httpProtocol>
          <customHeaders>
            <clear />
            <!--<add name="X-UA-Compatible" value="IE=10" />
            <add name="X-UA-Compatible" value="IE=11" />-->
            <add name="X-UA-Compatible" value="IE=edge" />
          </customHeaders>
        </httpProtocol>
</system.webServer>

person Vereonix    schedule 23.08.2018    source источник
comment
Вы просматривали html5csv? Этот вопрос также может помочь.   -  person tao    schedule 23.08.2018
comment
@AndreiGheorghiu связанный вопрос был именно моей проблемой, спасибо!   -  person Vereonix    schedule 23.08.2018
comment
Я отмечу это как дубликат, чем. Это поможет улучшить индексацию другого, чтобы его было легче найти другим людям.   -  person tao    schedule 23.08.2018