You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决JavaScript中请求被强制调用HTTPS的报错问题

问题解决方案

1. 变量未定义报错修复

你代码里eventSource.onerror回调的参数是event,但内部打印时用了未定义的变量e,直接修改即可:

eventSource.onerror = (event) => {
    if (event.readyState == EventSource.CLOSED) {
        console.log('sse close');
    } else {
        console.log("onerror", event); // 把e改成event
    }
}

另外你的代码里同时发起了XMLHttpRequest和EventSource两个相同路径的请求,SSE功能只需要保留EventSource即可,建议删除多余的XHR请求代码避免不必要的冲突。

2. HTTP被强制转为HTTPS的问题解决

按优先级逐一排查:

  • 排查HSTS配置
    浏览器的HTTP严格传输安全策略会强制将指定域名的HTTP请求转为HTTPS,本地排查步骤:
    1. Chrome浏览器地址栏输入chrome://net-internals/#hsts
    2. 在Query HSTS/PKP domain输入框中输入localhost查询,如果返回存在记录,在下方Delete domain security policies输入localhost删除即可。
  • 排查混合内容拦截
    如果你当前打开的页面本身是HTTPS协议,浏览器会自动拦截所有HTTP请求并尝试升级为HTTPS,解决方案:本地开发时统一用HTTP协议打开页面,或者给本地8330端口的服务配置自签HTTPS证书,统一用HTTPS访问。
  • 排查CSP配置
    检查页面响应头或者HTML的meta标签中是否存在Content-Security-Policy: upgrade-insecure-requests配置,该配置会强制所有HTTP请求升级为HTTPS,删除该配置即可。
  • 排查全局请求拦截
    先硬编码测试url,把url写死为http://localhost:8330/itf/subscribe后测试,如果还是跳转HTTPS则排除变量问题;如果硬编码后正常,检查_EVENT_PUSH_ENDPOINT变量是否存在隐藏字符,或者项目全局是否有请求拦截逻辑修改了请求协议。

内容的提问来源于stack exchange,提问作者emarwa.mouma.35t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:06:01