Я пытаюсь использовать код, смоделированный после https://stackoverflow.com/a/29702251/9885144, чтобы выполнить запрос HttpRequest, сгенерировать ссылку для загрузки из возвращенного большого двоичного объекта, а затем автоматически загрузить ее (все после нажатия кнопки).Вот функция, которая запускается при нажатии кнопки: (функция Converter.toDocx()
запускает HttpRequest.postFormData()
в нужном мне формате и возвращает будущее.)
getDocx(String qStr, String aStr) {
String totalString = qStr + aStr;
Converter.toDocx(convertURL, totalString).then((HttpRequest req) {
String contentType = req.getResponseHeader("content-type");
print(contentType);
String filename = "download.docx";
AnchorElement downloadLink =
new AnchorElement(href: Url.createObjectUrlFromBlob(req.response));
downloadLink.rel = contentType;
downloadLink.download = filename;
var event = new MouseEvent("click", view: window, cancelable: false);
downloadLink.dispatchEvent(event);
});
}
Этоотлично работает (на Chrome, Firefox и Edge), когда я использую webdev serve
.Он также отлично работает при развертывании на моем удаленном сервере с webdev build --no-release -o build:web
.Но это не сработает, если я опущу опцию --no-release
, поэтому я предполагаю, что что-то другое в том, как dart2js обрабатывает это по сравнению с dartdevc.Я планирую добавить всплывающее окно со ссылкой «щелкните здесь, если не загружается» в качестве обходного пути, но есть ли лучший вариант или это ошибка dart2js?