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

(但是我将其他答案之一标记为已接受,而不是我自己的答案,因为它使我半途而废,并以此来奖励自己的努力)


似乎无法通过与链接设置HTTP请求" title="HTTP请求">HTTP请求标头<a href="...">,而只能使用来完成XMLHttpRequest

但是,链接到的URL是应下载的文件(浏览器不应导航至其URL),而且我不确定是否可以使用AJAX来完成。

此外,返回的文件是一个二进制文件,而AJAX并非用于此目的。

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

编辑:修复断开的链接

回答:

尝试

html

<!-- placeholder , 

`click` download , `.remove()` options ,

at js callback , following js

-->

<a>download</a>

js

        $(document).ready(function () {

$.ajax({

// `url`

url: '/echo/json/',

type: "POST",

dataType: 'json',

// `file`, data-uri, base64

data: {

json: JSON.stringify({

"file": "data:text/plain;base64,YWJj"

})

},

// `custom header`

headers: {

"x-custom-header": 123

},

beforeSend: function (jqxhr) {

console.log(this.headers);

alert("custom headers" + JSON.stringify(this.headers));

},

success: function (data) {

// `file download`

$("a")

.attr({

"href": data.file,

"download": "file.txt"

})

.html($("a").attr("download"))

.get(0).click();

console.log(JSON.parse(JSON.stringify(data)));

},

error: function (jqxhr, textStatus, errorThrown) {

console.log(textStatus, errorThrown)

}

});

});

jsfiddle

http://jsfiddle.net/guest271314/SJYy3/

以上是 如何为HTTP GET请求设置标头并触发文件下载? 的全部内容, 来源链接: utcz.com/qa/416366.html

回到顶部