fetch http 请求被转成 https ?

问题
【fetch http 请求被转成 https ?】fetch 请求一个 http 协议的接口,实际请求出去的接口是 https 协议的?
解决
有两种思路:

  • fetch 请求有没有被重写;
  • 其他配置影响,让原生 api 出现异常;
经检查,fetch 请求没有被重写,所以就着重看下思路二。经过不断的查找, 发现一个meta 标签:

原来是因为这个才把 http 自动转化为 https。
内容安全策略 CSP
CSP 通过定义 Content-Security-Policy HTTP 标头,允许创建信任内容的来源白名单,并指示浏览器仅执行或渲染来自这些来源的资源,而不要盲目地信任服务器提供的所有内容。即使攻击者发现漏洞并能够注入脚本,由于此脚本不符合此白名单,也不会执行该脚本。
作用 可显著降低现代浏览器中 XSS 攻击的风险和影响的防护功能。
CSP指令 尽管脚本资源是最显而易见的安全风险,但 CSP 提供了一个丰富的策略指令集,让开发者可以对允许页面加载的资源进行相当精细的控制。其余指令有:
  • script-src
    用于控制脚本对于某个特定页面所享有的一组权限。
  • base-uri
    用于限制可在页面的 元素中显示的网址。
  • child-src
    用于列出适用于工作线程和嵌入的帧内容的网址。例如: child-src https://youtube.com 将启用来自 YouTube(而非其他来源)的嵌入视频。 使用此指令替代已弃用的 frame-src 指令。
  • connect-src
    用于限制可(通过 XHR、WebSockets 和 EventSource)连接的来源。
  • font-src
    用于指定可提供网页字体的来源。Google 的网页字体可通过 font-src https://themes.googleusercontent.com 启用。
  • form-action
    用于列出可从
    标记提交的有效端点。
  • frame-ancestors
    用于指定可嵌入当前页面的来源。此指令适用于