触发文件下载时,我有哪些设置Accept标头的选项?

时间:2014-03-31 22:20:46

标签: html rest http-headers browser download

我有一个路由/reports/foo-report/rendered/,它将返回文件下载(使用Content-Disposition标题)。根据REST的建议,报告是以pdf还是powerpoint的形式返回,取决于请求的Accept标头。

在触发文件下载时,我有哪些选项来设置此标头?我显然不能使用XmlHttpRequest,链接或表单。我目前正在使用令人敬畏的jquery.fileDownload但它似乎也不支持这个。

有没有办法在浏览器中以适当的RESTy方式执行此操作?

2 个答案:

答案 0 :(得分:-1)

我不熟悉jquery.fileDownload,但是如果您有权访问$.ajax({}),则可以设置特定标题:

$.ajax({
    headers: { 
        Accept : "text/plain; charset=utf-8",
        "Content-Type": "text/plain; charset=utf-8"
    },
    data: "data",
    success : function(response) {
        ...
    }
})

已发布here

答案 1 :(得分:-1)

确实存在一个奇怪的问题,遗憾的是我无法想到这样做的方法。

但我确实找到了Django arguing that format suffixes should be considered an acceptable pattern。虽然这并没有为您提供使用Accept标头的方法,但它确实提出了另一种(可以说是) RESTy 方法。