我正在尝试通过在所有传出请求上设置自定义请求标头来跟踪通过应用程序发出的所有请求。我能够使用以下方法完成此操作:
$ajax.Setup(
beforeSend: ...
但是,当 dom 元素(即 iframe、视频、对象等)上的 src 属性发起请求时,我遇到了一个问题。搜索时我发现:更改 iframe src 时如何设置自定义 http 标头? 但是,当我尝试这样做时,我无法让它启动下载对话框。该代码看起来像:
var request = $.ajax({
context: this,
url: URI,
type: 'GET',
statusCode: {
200: function(data) {
var id = '#download-iframe';
var $iframe = $(id);
if($iframe.length === 0) {
$iframe = $('<iframe>')
.attr('id', 'download-iframe')
.appendTo('body');
}
$iframe.contents().find('html').html(data);
}
}
});
该请求的响应标头如下所示:
Content-Disposition:attachment; filename="PDF.pdf"
Content-Length:86712
Content-Type:application/pdf;charset=UTF-8
这会在 iframe 中显示原始数据,但不会启动下载。
无论如何 A)(首选)通过设置 DOM 元素 src 以不同的方式设置请求标头或 B)获取下载对话框以启动。