在DOM元素发起的请求上设置请求标头

时间:2015-01-13 20:05:21

标签: javascript html ajax dom request-headers

我试图通过在所有传出请求上设置自定义请求标头来跟踪通过应用程序发出的所有请求。我能够通过以下方式实现这一目标:

$ajax.Setup(
    beforeSend: ...

但是,当dom元素(即iframe,视频,对象等)上的src属性启动请求时,我遇到了一个问题。搜索时我发现:How to set custom http headers when changing iframe src?但是,当我尝试这个时,我无法启动它来启动下载对话框。该代码看起来像:

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)以不同的方式设置请求标题。获取下载对话框以启动。

1 个答案:

答案 0 :(得分:0)

  

B)启动下载对话框。

blob URI + <a download ...> +合成点击事件可能会有效