jQuery, которые делают document.location = "url" - PullRequest
1 голос
/ 28 июня 2011

jQuery имеет много функций для запросов ajax, но если я хочу загрузить ответ с сервера, браузер не отображает диалоговое окно загрузки, если я делаю это, используя $.ajax

Это прекрасно работает:

document.location = 'VCard.aspx?name=Andreas'

В моем ответе от сервера установите эти заголовки:

Response.ContentType = "text/x-vcard";
Response.AddHeader("content-disposition", "attachment; filename=vcard.vcf");

Но если мне это нравится, диалог загрузки не отображается, загрузка работает, но диалог не't show.

$.ajax
({
    type: "POST",
    url: '/VCard.aspx',
    data: { name: 'Andreas' }
});

My data: содержит более 40 различных параметров, и я хочу использовать синтаксис json для создания аргументов, чтобы было понятно.

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

$.ajax будет использовать объект XMLHttpRequest для публикации данных.Это не вызовет пользовательский интерфейс браузера, так как ожидается, что он будет скриптовым.

Если вы просто хотите правильно отформатировать строку запроса от объекта, вы можете использовать $.param.

0 голосов
/ 28 июня 2011

Метод $ .ajax используется для возврата данных с вашего сервера без отображения диалогового окна. Вы можете сделать так, чтобы метод ajax отображал диалог, выполнив что-то в действии успеха

$.ajax({
   type: POST,
   url: '/VCard.aspx’,
   data: { name: 'Andreas' }, 
   success: function (data, textStatus, jqXHR) {
     /*open your dialog*/
   }
});
...