代码之家  ›  专栏  ›  技术社区  ›  Leo

Axios向Chrome上的端口80发送HTTPS XHR

  •  0
  • Leo  · 技术社区  · 4 年前

    从Vue.js前端使用Axios的API请求失败,但仅在Chrome中失败。

    Chrome/Safari/Firefox中的网络检查器显示,Chrome正在向端口80发出XHR请求,尽管前端和后端都是HTTPS。Safari和Firefox按预期使用443。

    这以前不是问题。有人知道Axios或Chrome为什么会这么做吗?

    背景

    这个问题似乎是最近开始的,我们已经好几周没有更新任何低级别的前端代码了。

    报告的错误本身是Cloudflare返回的504,这意味着我们的原始服务器拒绝了请求,这是有道理的,因为它在端口80上,预期为443。

    实际上,我们并没有在代码中的任何位置指定端口。除非另有说明,否则我认为它是从协议中推断出来的。在我看来,Axios是自己或通过每个浏览器中的不同适配器来完成这项工作的,但我不能很好地阅读编译后的JS。在没有TLS的情况下进行本地开发时,Chrome和其他浏览器似乎可以正确地切换到端口80。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Leo    4 年前

    这是 不 这里的实际问题。

    事实证明,当导出 .har 文件(由网络检查器会话记录的所有网络请求的保存副本),它会丢失或损坏端口数据。

    铬 是 使得HTTPS请求最终到达443。