У меня есть следующая форма HTML:
<form id="message" data-file="assets/paper.pdf")">
<input type="text" name="email" id="email" />
<button class="button" type="submit">Download</button>
</form>
Форма отправлена с JQuery. Если это удается, мне нужно начать загрузку файла, URL-адрес которого находится в атрибуте data-file
формы:
$("#message").on("submit", function (event) {
event.preventDefault();
var $form = $(this);
var data = $form.serializeToJSON();
var file1 = $form.data('file');
console.log(file1); // Returns "assets/paper.pdf"
window.open(file1); // THIS WORKS
$.ajax({
url: "/api/messages",
data: JSON.stringify(data),
type: "post"
})
.done(function (data, status, xhr) {
var file2 = $form.data('file');
console.log(file2); // Returns "assets/paper.pdf"
window.open(file2); // THIS DOES NOT WORK
})
.fail(function (xhr, status, error) { console.log(error); });
});
Если я использую window.open
внутри done
, загрузка не начинается.
Но если я попробую это раньше done
, метод теперь работает. Есть идеи почему?