загрузка через ajax и iframe?

#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 на страницу фрейма, которая автоматически нажимает кнопку или отправляет форму публикации.