Вызов Asp.Net HttpHandler и jQuery Ajax

Это 2 вопроса. Первый: у меня есть HttpHandler, возвращающий zip-файл для загрузки. У меня есть такая строка кода:

context.Response.AppendHeader("content-disposition", "attachment; filename=myzipfile.zip");

Возникает вопрос: следует ли также декларировать ContentType (application / zip)?

Второй вопрос: я хочу вызвать этот HttpHandler из вызова jQuery ajax. Отправляю параметры в формате json. Как мне объявить contentType вызова ajax?

Спасибо за ваше время.


person opaera    schedule 10.09.2010    source источник


Ответы (1)


Возникает вопрос: следует ли мне также объявить ContentType (application / zip)?

да.

Я хочу вызвать этот HttpHandler из вызова jQuery ajax

Вызов сценария на стороне сервера, который возвращает двоичный zip-поток с использованием AJAX, не имеет особого смысла, поскольку вы не сможете управлять ответом.

person Darin Dimitrov    schedule 10.09.2010
comment
Спасибо за Ваш ответ. Что вы предлагаете для описанного мной сценария? - person opaera; 10.09.2010
comment
Вы не описали ни одного сценария. Вы только что задали два вопроса, на которые я дал ответ. Если вы хотите, чтобы пользователь мог загрузить файл, создайте простую ссылку, которая указывает на ваш обработчик ashx. Нет необходимости в AJAX: <a href="/yourhandler.ashx?param1=value1">Download ZIP</a>. - person Darin Dimitrov; 10.09.2010
comment
Я лучше объясню тебе, что я хочу делать. HttpHandler возвращает разные коды состояния в случае ошибок. Я хочу управлять этими, а затем я хочу вызвать httphandler, отправляющий параметры в Post. Я думаю, что не могу этого сделать с помощью простой ссылки. Что вы предлагаете для этого? - person opaera; 10.09.2010
comment
В этом случае вы можете использовать <form action="/yourhandler.ashx" method="POST">. - person Darin Dimitrov; 10.09.2010
comment
Я не могу думать, у меня есть форма на мастер-странице. Я пытаюсь использовать вызов ajax (jQuery), мой httphandler работает нормально, но я не могу загрузить файл, вызов ajax, похоже, выдает ошибку. Я должен объявить dataType для вызова ajax, но как насчет zip-файла? Я действительно благодарю вас за ваше время. - person opaera; 10.09.2010