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

lee*_*tom 5 flash http-referer internet-explorer

我有这个swf文件,它会crossdomain.xml在播放前请求一个文件.并且文件主机配置为禁止"Hotlinking"(这意味着服务器将检查Referer Header,302如果referer不在列表中则返回).

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

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

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

更新:我没有回答,所以我必须重新配置服务器以禁用302重写.

Fil*_*lip 0

根据 IE 文档:

在 Internet Explorer 4.0 及更高版本中从一个文档链接到另一个文档时,如果链接是从 HTTPS 页面到非 HTTPS 页面,则不会发送 Referer 标头。当链接来自非 HTTP(S) 协议(例如 file://)到另一个页面时,也不会发送 Referer 标头。

你可以在这里阅读更多信息

你可以尝试模仿类似的东西来覆盖该行为:

    //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();
      }
    }
Run Code Online (Sandbox Code Playgroud)

更多信息在这里