加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

GET文件时,Flash播放器不会发送Referer Header

发布时间:2020-12-15 07:27:45 所属栏目:百科 来源:网络整理
导读:我有这个swf文件,它会在播放之前请求一个crossdomain.xml文件.并且文件主机配置为禁止“Hotlinking”(这意味着服务器将检查Referer Header,如果referer不在列表中,则返回302). 在chrome中一切运行良好,但对crossdomain.xml文件的请求不会在IE中发送Referer H
我有这个swf文件,它会在播放之前请求一个crossdomain.xml文件.并且文件主机配置为禁止“Hotlinking”(这意味着服务器将检查Referer Header,如果referer不在列表中,则返回302).

在chrome中一切运行良好,但对crossdomain.xml文件的请求不会在IE中发送Referer Header,因此无法获取该文件.

我已经在IE 11的调试工具中测试了IE 11,IE 8和IE 9,10.

我不是这个swf文件的作者,也不知道它是如何工作的.有什么解决方案吗?谢谢!

更新:
我得不到答案,所以我必须重新配置服务器以禁用302重写.

解决方法

根据IE文档:

When linking from one document to another in Internet Explorer 4.0 and later,the Referer header will not be sent when the link is from an HTTPS page to a non-HTTPS page. The Referer header also will not be sent when the link is from a non-HTTP(S) protocol,such as file://,to another page.

你可以阅读更多信息here

你可以尝试模仿这样的东西来覆盖这种行为:

//use browser sniffing to determine if IE or Opera (ugly,but required)
    var isOpera,isIE = false;
    if(typeof(window.opera) != 'undefined'){isOpera = true;}
    if(!isOpera && navigator.userAgent.indexOf('Internet Explorer')){isIE = true;}

    //define for all browsers
    function goto(url){
      location.href = url;
    }

    //re-define for IE
    if(isIE){
      function goto(url){
        var referLink = document.createElement('a');
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
      }
    }

更多信息here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读