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

Vue CLI调用Express服务器Fetch请求异常:请求对象为空且控制台无输出

问题分析与解决方案

核心问题出在你设置的mode: 'no-cors'上——这个模式会让浏览器返回一个不透明响应(opaque response),你无法读取响应的任何内容,包括响应体、状态码,所以控制台输出的都是空的无效内容。

修正步骤:

  • 直接移除{ mode: 'no-cors' }配置,既然你已经修复了CORS问题,就不需要这个限制模式了。
  • 用Fetch API自带的response.json()方法解析JSON响应,不要手动转字符串再解析,因为await response得到的是Response对象,不是响应体内容。
  • 加上错误处理逻辑,方便排查请求过程中可能出现的问题。

修正后的代码:

methods: {
async getInfo () {
  try {
    const response = await fetch('https://ksjkfsjdbnfksjfksjf744.netlify.app/.netlify/functions/api/demo')
    // 检查请求是否成功(状态码200-299)
    if (!response.ok) {
      throw new Error(`请求失败,状态码:${response.status}`)
    }
    const responseObject = await response.json()
    console.log('响应数据:', responseObject)
  } catch (error) {
    console.error('请求出错:', error)
  }
}
}

关键说明:

  • no-cors模式仅适用于不需要读取响应的场景(比如上报统计数据),它会完全限制脚本对响应的访问权限,这就是你拿不到数据的根本原因。
  • response.json()会自动将响应体解析为JSON对象,比手动JSON.parse(JSON.stringify(response))更高效且不易出错。
  • 加入try/catch和response.ok检查,能帮你快速定位网络错误、服务器错误等问题,避免控制台毫无输出的情况。

内容的提问来源于stack exchange,提问作者Vatorio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:39:56