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

Nuxt3中useFetch调用HTTP接口自动转HTTPS的问题求助

解决Nuxt3 useFetch自动转为HTTPS请求的问题

以下是几个直接可行的解决思路,无需复杂的Nginx代理:

  • 确保请求URL完整指定HTTP协议
    调用useFetch时必须传入完整的http://开头的URL,不要使用相对路径或省略协议的写法。例如:

    const { data } = await useFetch('http://target-server.com/api/endpoint')
    

    部分场景下,Nuxt会根据当前应用的协议自动补全URL,明确指定http://可以避免这种自动转换。

  • 调整Nuxt Nitro配置
    在nuxt.config.ts中添加Nitro相关配置,禁用HTTPS强制转换:

    export default defineNuxtConfig({
      nitro: {
        https: false,
        devProxy: {
          // 开发环境可通过该配置直接代理HTTP请求,无需额外工具
          '/api': {
            target: 'http://target-server.com/api',
            changeOrigin: true,
            prependPath: false
          }
        }
      }
    })
    

    Nitro是Nuxt3的服务端引擎,这个配置可以避免服务端发起请求时强制切换到HTTPS。

  • 检查环境变量与公共配置
    确认项目中没有设置NUXT_PUBLIC_BASE_URL或类似环境变量为HTTPS地址,这类变量会被Nuxt用作请求的基础URL,导致所有请求自动拼接成HTTPS。如果有,修改为对应的HTTP地址即可。

  • 处理浏览器混合内容限制(客户端请求场景)
    如果你的Nuxt应用是通过HTTPS运行的(比如生产部署或本地启用了HTTPS),浏览器会因混合内容安全策略阻止HTTP请求:

    • 开发环境:可临时在浏览器设置中允许不安全内容(Chrome地址栏点击锁图标→网站设置→不安全内容→允许)
    • 生产环境:若无法修改目标服务器的HTTPS配置,可将Nuxt应用改为HTTP运行,或使用Nitro的生产环境代理配置(nitro.proxy)

内容的提问来源于stack exchange,提问作者Sebastian van der Westhuizen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:31:04