#jquery
#jquery
Вопрос:
У меня есть этот небольшой фрагмент кода if:
$.post('exportToExcel.php', function(data) {
var iframe = document.createElement("iframe");
iframe.src = "" data;
iframe.style.display = "none";
document.body.appendChild(iframe);
});
Но ничего не происходит, я пытаюсь беспрепятственно загрузить файл с сервера через ajax jquery.
У кого-нибудь есть хорошее исправление?
Ответ №1:
Если вы просто пытаетесь направить пользователя к файлу, для загрузки вам следует использовать обычную ссылку или использовать location.href = 'my_url';
для отправки браузера туда напрямую.
В качестве альтернативы, если вы действительно хотите сделать это таким «бесшовным» способом, не используйте AJAX POST. Просто сделайте прямую ссылку на exportToExcel.php
в iframe
.
Если exportToExcel.php
требуется использование POST, сделайте его iframe
видимым, а при exportToExcel.php
вызове через GET
предоставьте кнопку «Загрузить» того же размера, что и iframe
, и при нажатии на нее отправьте обычную HTML-форму на тот же URL через POST.
Комментарии:
1. будет ли ваше последнее предложение так сильно отличаться от моего кода выше?
2. Разница в моем третьем примере в том, что он использует
iframe
и просто обычный HTTP. Не требуется JS или AJAX. Однако вы могли бы поместить некоторый JS на страницу фрейма, которая автоматически нажимает кнопку или отправляет форму публикации.