Используя JQuery и Ajax, чтобы сохранить файл в ASP.NET

У меня есть кнопка, которая использует jQuery и ajax для вызова серверного сценария для создания текстового файла и передает следующий ответ обратно:

Response.ContentType = "csv";
Response.AddHeader("Content-disposition", "attachment; filename=" + fName);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(btFile);
Response.End();

Однако диалоговое окно сохранения не появляется. Если я не использую ajax и выполняю полную обратную передачу с тем же кодом, он работает. Какие-либо идеи?

Вот код jQuery:

$(function() {
    $('#reportButton').click(function() {
        $.ajax({
            type: "POST",
            url: "GenerateReport.aspx",
            data: "id=0",
            success: function(){
            }
        });
    });
});
6
задан Pang 21 July 2016 в 08:02
поделиться

2 ответа

Вместо использования AJAX (который не будет работать, как упоминает Брайан) вы можете подделать его, используя jQuery для динамического создания формы и iframe для публикации. Вот пример, который я нашел - вы должны прочитать комментарии, чтобы узнать о некоторых улучшениях (например, об использовании динамически создаваемого iframe для предотвращения проблем, если ваша страница не возвращает правильные заголовки).

3
ответ дан 17 December 2019 в 07:00
поделиться

Я думаю, что проблема в AJAX, и если бы запрос был сделан как стандартный запрос вне JQuery, вы бы получили диалоговое окно сохранения. Запросы JQuery будут передавать данные в обратный вызов ...

1
ответ дан 17 December 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: