在 DOM 元素发起的请求上设置请求标头
Setting Request Header on DOM element initiated requests
我正在尝试通过对所有传出请求设置自定义请求标头来跟踪通过应用程序发出的所有请求。 我能够通过以下方式完成此操作:
$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) 启动下载对话框。
B) 启动下载对话框。
blob URI + <a download ...>
+ 合成单击事件可能会起作用
相关文章:
- 哪个 JavaScript 库在请求对象上设置 _parsedUrl 属性
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- 在不发出请求的情况下设置img src
- 导轨 4.宝石will_paginate.更改在 ajax 请求上设置的分页链接
- 在express.js中为每个请求设置全局res.local变量
- Ajax请求返回模块设置数据
- 有没有办法为节点js-https请求设置源端口
- 在 Chrome 扩展程序中为 HTTP 请求设置用户代理
- 使用 Fetch GET 请求设置查询字符串
- 为从
标记发出的请求设置自定义标头
- 如何为JQuery$.ajax同步请求设置超时并执行某些操作
- 在CasperJS中为请求设置cookie
- 如何根据Node.js中的post参数之一为所有请求设置时区
- 避免将ajax请求设置为同步的解决方案
- XMLHttpRequest为每个请求设置RequestHeader
- 如何使用AJAX请求设置cookie值
- 为express app中的JSON请求设置正确的内容类型
- 有没有办法为一个请求设置一个cookie ?
- 如何为每个服务器请求设置uid
- 我可以为所有 AJAX 请求设置全局标头吗?