记录一个奇怪的跨域问题

309 阅读1分钟

问题描述

只是一个普通的静态视频资源地址,使用video标签进行播放

image.png

在a站点跨域

image.png

在b站点可以正常播放

image.png

经过简单排查,发现是在a站点访问时,请求头中的Sec-Fetch-Mode字段被设置成了cors导致的跨域

image.png

image.png

排查经过

  1. 首先找了半天fetch请求的mode参数控制该字段

但是这个请求是原生video标签发起的,也不存在fetch

  1. 然后看看官方对sec-fetch-mode描述,没有得到有用信息。

  2. 看到git上一个和该问题类似的issue, 看了之后更迷了,感觉这个字段是浏览器自动设置的,前端想修改只能通过fetch的方法实现拉取资源,同时设置mode,但是设置为no-corsmode获取的数据是js无法访问的,无解的感觉

留此文章记录,相信未来人的智慧哈哈