JQuery отправил форму для загрузки файла? - PullRequest
2 голосов
/ 01 марта 2010

У меня есть форма, которая отправляет URL-адрес, который запускает загрузку файла. Сервер ASP.NET MVC, и я записываю файл CSV.

Я хочу, чтобы jQuery / javascript отправлял форму вместо кнопки отправки формы.

Например, я создал ссылку и прикрепил обработчик, используя jQuery для отправки формы:

$(function() {
    $("#mylink").click(function() {
        $("form").submit();
        return false;
    });
});

Я также попытался сериализовать форму и сделать запись ajax с тем же результатом.

Что я получаю, так это то, что запрос / ответ происходит, как и должно быть, но я не получаю диалоговое окно загрузки файла (сохранения файла). Я могу проверить ответ, используя, например, fiddler.

Это как если бы ответ происходил вне группы или что-то в параллельном потоке, если хотите, у двери никого нет.

Может кто-нибудь пролить свет? Спасибо

UPDATE По какой-то причине $("form").submit() не работает, но я могу выполнить проверку и предварительную обработку, а затем вернуть true, что работает.

1 Ответ

0 голосов
/ 01 марта 2010

Если вы вызываете метод отправки в форме, то это точно так же, как нажатие обычной кнопки отправки.

Использование XHR не удастся (поскольку файл будет обрабатываться XHR вместо обычного обработчика ответа браузера), но .submit () должен работать.

Похоже, вы просто не устанавливаете заголовок content-disposition, чтобы браузер обрабатывал данные как вложение, а не как встроенный документ.

...