配置跨域访问

当使用Web播放器SDK播放视频出现Access-Control-Allow-Origin或提示资源允许跨域访问等相关报错时,您需要启用播放域名允许跨域访问。本文为您介绍H5播放、Flash播放和OSS播放如何配置跨域访问。

H5播放FLV、M3U8视频的跨域配置

当出现以下错误时,需要启用播放域名允许跨域访问。

No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 
Origin ‘http://localhost:9030‘ is therefore not allowed access.

添加允许跨域访问的HTTP消息头。更多信息,请参见配置跨域资源共享

  • Access-Control-Allow-Origin:指定允许的跨域请求的来源。取值为播放视频网站的域名,例如网站为https://www.aliyundoc.com,那么参数取值为https://www.aliyundoc.com。示例图如下所示。Access-Control-Allow-Origin示例图.png

  • Access-Control-Allow-Methods:指定允许的跨域请求方法。取值为POST或GET,如果您需要同时添加POST和GET,请使用半角逗号(,)隔开。示例图如下所示。Access-Control-Allow-Methods示例图.png

说明

如果ts分片地址的域名和M3U8的地址的域名不一样,那么ts分片地址的域名也需要添加允许跨域访问的HTTP消息头。

Flash播放器的跨域配置

当出现以下的错误时,请先排查域名是否备案,CNAME是否绑定。更多信息,请参见域名准入标准通过阿里云云解析配置CNAME

Flash错误.png

如果确认域名备案和CNAME绑定没有问题,那就是跨域的问题。您可以添加crossdomain.xml访问策略文件,实现跨域配置。

将crossdomain.xml文件添加到视频地址域名的根目录下, 如果数据是存储在阿里云OSS上面,您需要在bucket的根目录下放置这个文件。

如果您使用的是阿里云点播服务,在开通服务时,点播会自动帮助你添加跨域文件。后续,您可以调用SetCrossdomainContent - 更新跨域文件接口更新crossdomain.xml访问策略文件的内容。

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>
说明

封面图片的地址与视频的地址不是同一个域名,封面图片所使用的域名也需要配置crossdomain.xml访问策略文件。

播放OSS存储视频的跨域设置

从播放器直接访问OSS需要开通Bucket的跨域资源共享。更多信息,请参见跨域设置

创建跨域规则参数配置。

  • 来源:*。

  • 允许 Methods:选择GET,POST,PUT,DELETE,HEAD。

  • 允许 Headers:*。

  • 暴露Headers:ETag。

重要

请将该条CORS规则设置成所有CORS规则的第一条。

示例图如下所示。OSS跨域示例图.png