Flash player赢得';获取文件时不发送Referer头

Flash player赢得';获取文件时不发送Referer头,flash,internet-explorer,http-referer,Flash,Internet Explorer,Http Referer,我有这个swf文件,它将在播放之前请求一个crossdomain.xml文件。并且文件主机被配置为禁止“热链接”(这意味着服务器将检查Referer头,如果Referer不在列表中,则返回302) chrome中的一切都很好,但是对crossdomain.xml文件的请求不会在IE中发送Referer头,因此无法获取该文件 我已经在IE11的调试工具中测试了IE11、IE8和IE9、10 我不是这个swf文件的作者,也不知道它是如何工作的。有什么解决办法吗?谢谢 更新: 我没有得到答案,因此我必

我有这个swf文件,它将在播放之前请求一个
crossdomain.xml
文件。并且文件主机被配置为禁止“热链接”(这意味着服务器将检查Referer头,如果Referer不在列表中,则返回
302

chrome中的一切都很好,但是对
crossdomain.xml
文件的请求不会在IE中发送
Referer
头,因此无法获取该文件

我已经在IE11的调试工具中测试了IE11、IE8和IE9、10

我不是这个swf文件的作者,也不知道它是如何工作的。有什么解决办法吗?谢谢

更新:
我没有得到答案,因此我必须重新配置服务器以禁用302重写。

根据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();
      }
    }

更多信息

出于安全原因,Flash在请求crossdomain.xml时不会发送referer头


没有解决办法。

那么你能做什么?你有SWF源代码吗?@Tomek对不起,我没有源代码。我想知道为什么我不发送标题。是否有任何选项可以让IE发送它?应该只从https://发送到http://(什么样的方式才有意义)。但是,当flash发挥作用时,无论在重新测试crossdomain.xml时使用什么协议,它似乎都不会发送Referer