在 IIS 中设置跨域(CORS)设置,需要通过配置 web.config
文件或使用 IIS 管理器添加 HTTP 响应头来实现。以下是两种常用方法,适用于允许局域网内(如你的 192.168.0.69
服务器)的跨域请求:
web.config
文件配置(推荐)直接在网站或虚拟目录的根目录下创建 / 修改 web.config
文件,添加跨域相关配置。这种方式更灵活,且配置会自动生效。
C:\inetpub\wwwroot
)中找到 web.config
(若没有则新建)。amovie
的跨域请求:在虚拟目录对应的物理文件夹(如 C:\videos
)中创建 / 修改 web.config
。将以下代码添加到 web.config
中(若已有 <system.webServer>
节点,直接合并内容):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- 跨域核心配置 -->
<httpProtocol>
<customHeaders>
<!-- 允许的来源(必填):* 表示允许所有域名,局域网内建议指定具体前端域名 -->
<!-- 例如:前端页面在 http://192.168.0.100,则改为 value="http://192.168.0.100" -->
<add name="Access-Control-Allow-Origin" value="*" />
<!-- 允许的请求方法(根据需求添加,至少包含 GET) -->
<add name="Access-Control-Allow-Methods" value="GET, HEAD, OPTIONS" />
<!-- 允许的请求头(需包含前端请求中使用的头,如 Range、Origin 等) -->
<add name="Access-Control-Allow-Headers" value="Range, Origin, X-Requested-With, Content-Type" />
<!-- 允许前端读取的响应头(如视频分片需要的 Content-Range) -->
<add name="Access-Control-Expose-Headers" value="Content-Range, Accept-Ranges" />
</customHeaders>
</httpProtocol>
<!-- 允许 IIS 处理 OPTIONS 请求(跨域预检请求会用到) -->
<handlers>
<remove name="OPTIONSVerbHandler" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" resourceType="Unspecified" requireAccess="None" />
</handlers>
</system.webServer>
</configuration>
保存文件后,IIS 会自动加载新配置,无需重启(若不生效,可在命令行执行 iisreset
重启 IIS)。
适合不熟悉 web.config
的用户,通过图形化界面配置:
Win + R
,输入 inetmgr
打开 IIS 管理器。amovie
)。双击右侧 “功能视图” 中的 HTTP 响应头 图标。
点击右侧 “操作” 栏中的 添加,依次添加以下头(对应 web.config
中的配置):
名称 | 值 | 说明 |
---|---|---|
Access-Control-Allow-Origin |
* (或具体前端域名,如 http://192.168.0.100 ) |
允许跨域的来源 |
Access-Control-Allow-Methods |
GET, HEAD, OPTIONS |
允许的 HTTP 方法 |
Access-Control-Allow-Headers |
Range, Origin, X-Requested-With, Content-Type |
允许的请求头 |
Access-Control-Expose-Headers |
Content-Range, Accept-Ranges |
允许前端读取的响应头(视频播放必需) |
Accept-Ranges |
bytes |
支持视频分片加载(配合 Range 请求) |
*
OPTIONS
ProtocolSupportModule
OPTIONSVerbHandler
checkFlvUrlExists
函数)。F12
打开浏览器开发者工具,切换到 Network 标签。192.168.0.69/amovie/girl.mp4
的记录,查看 Response Headers:
Access-Control-Allow-Origin
且值正确,说明跨域配置生效。200
或 206
,且无跨域错误提示,则配置成功。Access-Control-Allow-Origin
不建议用 *
(允许所有来源),应指定具体的前端域名(如 http://192.168.0.100:8080
),更安全。web.config
中单独设置。通过以上配置,你的 Dplayer 应该能正常访问局域网内 IIS 服务器的视频资源了。