6

在 IE 和 Chrome 中,如果您的 swf 对象请求一个 url(例如 mp3 文件),它也会在请求中传递 HTTP_REFERER。HTTP_REFERER 将是 swf 对象的 url。

这在 Firefox 中不会发生。HTTP_REQUEST 始终为空。

这是 swf 代码中的某个选项、flash 中的错误还是浏览器的限制?有没有办法克服这个问题?

提前致谢。

4

1 回答 1

3

同样的问题,经过一些研究,它似乎是来自 mozilla 的一个 3 岁的错误,如 @Amalgovinus 之前所述。

我们找到了一个解决方案,在 Flash 中执行 POST 请求而不是 GET 请求。您还必须传递伪造的数据,因为如果没有数据可随请求一起发送,flash 会自动将您的 POST 请求更改为 GET,这里有一个 flash 代码示例来完成这项工作:

var url = "http://exemple.com/myNotHotlinkedSong.mp3";
var myRequest:URLRequest = new URLRequest (url);
myRequest.method = URLRequestMethod.POST;
// add some data to the request to force the use of POST inside flashPlayer
myRequest.data = "fake=fake";

我们现在很高兴能够使用我们的 .htaccess 来避免盗链,即使在 FF 中也是如此,希望其他人会觉得这很有帮助。

于 2011-08-24T14:23:12.823 回答