从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。