网站域名原来是A(化名),后改为B,发现上面的视频播放不了,检查发现跨域了:

才想起来当初将网站视频改为M3U8格式时也碰到这个问题 现将相关操作记录下来,常复习备用。
web播放m3u8文件提示错误
解决方案:
步骤一:添加crossdomain.xml
播放器跨域访问时需要添加策略文件,即在视频播放链接所在域名的根目录下添加 crossdomain.xml 文件,其中添加播放器所在域名的权限。例如:
http://test1.com/app/test.m3u8需要添加http://test1.com/crossdomain.xml
具体代码如下,其中 *(代表全部请求地址都可跨域) 可以替换为你需要的请求地址。
<?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> <allow-access-from domain="*"/> <allow-http-request-headers-from domain="*" headers="*" secure="false"/> </cross-domain-policy>
(实际操作时,进行以上操作不成功,然后进行如下的操作,成功;回头删除以上添加的内容,还是可以跨域播放。)
步骤二:配置nginx、apache、IIS配置
如果使用了第一个方法还是不可以,则就需要根据自己的情况进行配置了
1,apache(亲测,成功跨域播放M3U8视频)
找到端口映射文件件的配置项,比如我的端口是8081,映射文件夹是var/www/html,则需要在httpd.conf配置中找到这个文件夹对应的配置,<Directory "/var/www/html"></Directory>

添加下面代码,其中 *(代表全部请求地址都可跨域) 可以替换为你需要的请求地址。
Header set Access-Control-Allow-Origin *
2,nginx(未测试)
通过Nginx模块HttpHeadersModule来添加Access-Control-Allow-Origin允许的地址。
在Nginx的conf目录下修改nginx.conf,添加以下代码
location ~* \.(eot|ttf|woff|svg|otf)$ { add_header Access-Control-Allow-Origin *; } // eot|ttf|woff|svg|otf,表示请求后缀类型,也可以直接写如下代码 location / { add_header Access-Control-Allow-Origin *; }
3,IIS
在IIS添加如下标头即可
Access-Control-Allow-Headers:Content-Type, api_key, Authorization Access-Control-Allow-Origin:*
4,tomcat
暂无 ———————————————— 版权声明:本文为CSDN博主「chenwuai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/chenwuai/article/details/83861087/ |