【问题标题】:jQuery that do document.location = "url"做 document.location = "url" 的 jQuery
【发布时间】:2011-09-24 12:55:47
【问题描述】:

jQuery 为 ajax 请求提供了许多功能,但如果我想从服务器下载响应,如果我使用 $.ajax 进行下载,浏览器不会显示下载对话框

这很好用:

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

在服务器的回复中,将这些设置为标题:

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

但如果我这样做了,下载对话框不显示,下载有效,但对话框不显示。

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

我的data: 包含超过 40 个不同的参数,我想使用 json 语法来构建参数以使其清晰。

【问题讨论】:

    标签: jquery download file-transfer


    【解决方案1】:

    $.ajax 方法用于从服务器取回数据而不显示对话框。您可以通过在成功操作中执行某些操作来让 ajax 方法显示对话框

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

    【讨论】:

      【解决方案2】:

      $.ajax 将使用XMLHttpRequest 对象来发布数据。这不会触发浏览器 UI,因为它应该是脚本化的。

      如果您只想从对象中获取格式正确的查询字符串,您可以使用$.param

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-20
        • 2013-12-27
        • 1970-01-01
        • 1970-01-01
        • 2013-02-11
        • 2020-07-21
        相关资源
        最近更新 更多