ckplayer跨域播放错误通过apache配置搞定的方法
更新:2024-04-07 10:24:31
人气:742
来源:本站原创
A+
记录一下使用ckplayer作为视频播放器时产生域名跨域问题后,多方尝试后通过apache跨域设置解决播放器跨域的方法。
在使用ckplayer播放非同一台服务器上的m3u8视频文件中出现了如下错误提示:
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is
因为在本地调试时一切正常,可以流畅播放视频,但放到正式的服务器时,资源文件是放在另一台服务器上的,就造成了视频文件的跨域问题。因为播放器采用的是ckplayer,网上找了很多解决方法。
都是关于播放器的配置方法,比如添加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>
但根本没有起到作用,错误依然报出。最后就想到通过修改apache跨域限制解决这个问题,最终视频可以正常播放了,下面是修改apache跨域问题的方法。
1、编辑httpd.conf
找下面这行,把#去掉,目的是开启apache头信息自定义模块
"#LoadModule headers_module modules/mod_headers.so"
没有的话直接添加上去(modules 有mod_headers.so模块)
2、修改服务器配置文件
<Directory /dir/>
Options FollowSymLinks
AllowOverride All
Require all granted
Header set Access-Control-Allow-Origin * //允许所有ip访问,请根据实际需要指定ip
Header set Access-Control-Allow-Credentials true
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, authorization" //authorization是自定义的授权字段
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, HEAD, PUT, DELETE, PATCH" //允许所有方法,请根据实际需要做适当删减
或者:
Header set Access-Control-Allow-Origin http://www.mdaima.com
</Directory>
我是用的Header set Access-Control-Allow-Origin *这一条生效后,播放正常。
推荐的文章
随手记
PHP经验分享
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题
- ● PHP实现计算CRC-16/MODBUS校验位
- ● MySQLSUM在没有符合查询条件时返回结果为空的处理办法
- ● 如何开启PHP8的JIT提升运行速度
- ● 钉钉API接口-用PHP+Curl实现获取用户信息
- ● 钉钉API接口-用PHP+Curl实现获取应用Access_Token
- ● 在PHP中使用CURL,“撩”服务器只需几行——phpcurl详细解析和常见大坑
- ● MySQLInnodb并发涉及参数说明
- ● mysql参数调优之innodb_thread_concurrency、innodb_concurrency_tickets合理的使用cpu性能
- ● PHP用fsockopen检测指定IP端口是否开启可用