Как указать тип содержимого и расположение содержимого с помощью ответа $ .ajax () GET - PullRequest
2 голосов
/ 24 июня 2010

Я хотел бы сделать асинхронный запрос GET, который возвращает документ с типом содержимого MIME и вызывает диалоговое окно браузера «Сохранить».

Раньше я делал обычный HTTP-запрос (не асинхронный) по ссылке, а возвращаемый ответ имел «Content-Type» и «Content-Disposition», например:

Content-Type: text/plain
Content-Disposition: attachment; 
    filename=genome.jpeg; 
    modification-date="Wed, 12 Feb 1997 16:29:51 -0500";

Есть ли способ преобразовать это в GQ-запрос jQuery $ .ajax ()?

Метод $ .ajax поддерживает только dataTypes, "xml", "html", "script", "json", "jsonp" и "text".Будет ли мой тип данных ответа попадать в одну из этих категорий?

Мой запрос выглядит следующим образом:

$.ajax({url: myUrl,
    data: params,
    type: "GET",
    success: function(data)
    {
        console.log("try to save this file!");
    },
    error: function(req, status, errThrown){
        alert("ERROR: Something happened");
    }

В обратном вызове «success» я вижу содержимое файла, переданное обратно вПеременная data в виде простого текста, но для ее запуска в браузере требуется диалог сохранения.

Сервер отправляет ответ с правильными заголовками.

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

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

Если вы хотите программно открыть диалоговое окно сохранения, вы можете использовать jQuery, чтобы добавить скрытый iframe на страницу с URL-адресом в качестве src. Это должно появиться диалоговое окно по мере необходимости.

0 голосов
/ 24 июня 2010

Это то, что сервер должен сделать.Со стороны клиента вы ничего не можете сделать, что заставит сервер нежелать устанавливать заголовки ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...