我正在开发HTML5视频播放器,它应播放从需要身份验证的服务器流式传输的视频。身份验证使用PHP完成。通常,代码如下所示:
<!-- http://localhost/video.php -->
<video preload="none" crossorigin="anonymous">
<source type="video/mp4" src="http://localhost/video_proxy.php">
</video>
所以在访问/video.php之前,用户必须登录。登录信息“存储”在PHPSESSID cookie中。
问题在于,向http://localhost/video_proxy.php
Chrome发送请求时,Chrome不会向该请求发送任何Cookie。结果是http://localhost/video_proxy.php
重定向到/login
,当然没有播放任何内容。
我无法找到amy文档或此行为的描述,所以我很好奇如何让Chrome通过视频请求发送Cookie。
PS:我在Firefox和IE中检查了相同的脚本,浏览器的行为还可以 - 发送cookie并且一切正常。
PPS:我还尝试停用所有Chrome扩展程序,将设置重置为默认值。而且我已经在几个同事的计算机上试过了 - 同样的行为。
答案 0 :(得分:1)
“匿名”关键字表示不会通过 Cookie ,客户端SSL证书或HTTP身份验证交换用户凭据
我认为对于同一个域,crossdomain属性将被忽略,这似乎是Firefox和IE中的情况
但是,根据您说明您的网页和视频网址是同一个域的事实,与Firefox和IE相比,Chrome似乎对使用crossdomain
属性有不同的想法