相关疑难解决方法(0)

如何设置HTTP GET请求的标头,并触发文件下载?

更新 20140702:

(但我将其他一个答案标记为接受而不是我自己的答案,因为它让我在那里一半,并奖励努力)


似乎无法通过链接设置HTTP请求标头<a href="...">,并且只能使用XMLHttpRequest.

但是,链接到的URL是应该下载的文件(浏览器不应该导航到它的URL),我不确定这是否可以使用AJAX完成.

此外,返回的文件是二进制文件,而AJAX不适用于此.

如何使用添加了自定义标头的HTTP请求触发文件下载?

编辑:修复损坏的链接

javascript ajax download http-headers

53
推荐指数
5
解决办法
9万
查看次数

使用JavaScript添加自定义HTTP标头

在HTML页面上,在单击图像("img")或锚点("a")标记的链接时,我想为GET请求添加自定义标头.这些链接通常用于下载动态内容.这些标头可以是SAML标头或自定义应用程序特定标头.

是否可以通过JavaScript添加这些自定义标头?或者,如果我通过XMLHttpRequest添加这些,我如何实现下载功能?

此要求仅适用于IE6或7.

javascript http-headers

41
推荐指数
3
解决办法
12万
查看次数

使用XMLHttpRequest提示文件下载

我知道jQuery的ajax方法无法处理下载,我不想添加一个jQuery插件来执行此操作.

我想知道如何使用XMLHttpRequest发送POST数据来下载文件.

这是我尝试过的:

var postData = new FormData();
postData.append('cells', JSON.stringify(output));

var xhr = new XMLHttpRequest();
xhr.open('POST', '/export/', true);
xhr.setRequestHeader("X-CSRFToken", csrftoken);
xhr.responseType = 'arraybuffer';
xhr.onload = function (e) {
    console.log(e);
    console.log(xhr);
}
xhr.send(postData);
Run Code Online (Sandbox Code Playgroud)

我正在使用Django,该文件似乎成功发送回客户端.在Chrome的网络标签中,我可以在预览标签中看到乱码(我期待).但我想发回一个zip文件,而不是zip文件的文本表示.这是Django的后端:

wrapper = FileWrapper(tmp_file)
response = HttpResponse(wrapper, content_type='application/zip')
response['Content-Disposition'] = "attachment; filename=export.zip"
response['Content-Length'] = tmp_file.tell()
return response
Run Code Online (Sandbox Code Playgroud)

我已经搜索了几个小时,但没有找到关于如何使用XMLHttpRequests执行此操作的正确示例.我不想用POST操作创建一个合适的html表单,因为表单数据相当大,并且是动态创建的.

上面的代码有问题吗?我错过了什么?我只是不知道如何实际将数据作为下载发送到客户端.

javascript django post xmlhttprequest

20
推荐指数
2
解决办法
3万
查看次数

如何在下载时向用户提供Ajax POST响应?

我正在尝试在充满帐户信息的现有页面中包含vCard导出功能.

丑陋的方法将涉及1,将表单提交到同一页面,处理它并重新呈现整个页面,或2,GET以页面上的iframe为目标.我真的想避免这两个,但我可能不得不使用#2来实现目标.

现在我有:

<input type="image" src="/intra/imgs/icons/vcard.png" onclick="$.post('/intra/vcard.php', { id: '992772', type: 'sponsor'});">
Run Code Online (Sandbox Code Playgroud)

从某种意义上讲,如果我在Firebug中观看XHR活动,我会看到请求返回正确的响应,充满了vCard格式的数据.但是,它不会提示用户将响应作为文件下载,即使该卡是通过以下方式发送的:

header('Content-Type: text/x-vcard');
header("Content-Disposition: attachment; filename={$this->name_first}{$this->name_last}.vcf");
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者这是不可能的?

php jquery download

3
推荐指数
1
解决办法
4362
查看次数

标签 统计

javascript ×3

download ×2

http-headers ×2

ajax ×1

django ×1

jquery ×1

php ×1

post ×1

xmlhttprequest ×1