【问题标题】:Using fetch() in browser is converting http to https [duplicate]在浏览器中使用 fetch() 将 http 转换为 https [重复]
【发布时间】:2022-01-03 08:56:08
【问题描述】:

我正在 chrome 浏览器控制台中对 URL 进行 http 调用,但它会自动将我的调用转换为 https。因此,我收到连接超时错误。以下是提供更好洞察力的代码:

fetch(`http://someurl.com`, {
        method: "POST",
        mode: "cors",
        referrer:"unsafe-url",
        headers: {'Content-Type': 'application/json'} ,
        body: {data:["g@g.com"]}
}).then(res => {
        console.log('result is:',res);
}).catch(err=> {
        console.log('error is:',err)
});

但是,调用是转到不存在的“https://someurl.com”。因此,我得到了错误:

POST https://someurl.com net::ERR_CONNECTION_TIMED_OUT

任何指针将不胜感激。

【问题讨论】:

  • 检查您的 HSTS 缓存。这是否发生在新的私人/隐身窗口中?
  • 我刚刚检查过,在隐身模式下进行操作会给我混合内容:“xxx”处的页面是通过 HTTPS 加载的,但请求了不安全的资源“someurl.com”。此请求已被阻止;内容必须通过 HTTPS 提供。
  • 这是设计使然。您需要使用https:// 无处不在。如果您依赖于非 HTTPS 外部服务,那么您需要向他们投诉以修复它:无法绕过这样的浏览器限制:dev.to/mittalyashu/…
  • 实际上我正在尝试一个部署在 aws 中的副项目。所以网址是http。有什么办法可以解决吗?
  • AWS 为所有端点提供 HTTPS。 究竟您使用的是什么 AWS 服务/平台,您在使 HTTPS 正常工作时遇到什么问题?

标签: javascript browser fetch-api


【解决方案1】:

Javascript 本身不会将您在请求中提供的 URL 从 http 更改为 https,因此它必须是接收端的基础设施才能进行更改。我建议您查看 Chrome 的网络请求选项卡中是否有重定向。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 2018-08-21
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多