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

使用Fetch获取Token时变量undefined问题求助

问题原因及解决方案

核心问题

你的PHP代码返回的是纯Token字符串的JSON格式(比如"abcdef123456"),但前端代码试图从一个包含token字段的对象中解构取值,自然会拿到undefined。

两种解决方法

方法一:修改PHP代码(推荐,符合接口规范)

将返回内容包装成包含token字段的对象,匹配前端的解构逻辑:

public function generateToken()
{
    $token = token();
    if($token){
        echo json_encode(['token' => $token]); // 把Token包装到对象的token字段中
        exit;
    }
}

方法二:修改前端代码(适配现有PHP返回格式)

直接接收返回的字符串,无需解构对象:

fetch(baseUrl+`generate-token?exp=86400`,
    {
        method: "GET",
    }
)
.then((res) => res.json())
.then((token)=>{ // 直接接收返回的Token字符串
    console.log(token); // 此时token即为生成的令牌
});

额外验证点

如果修改后仍有问题,检查以下内容:

  • 打开浏览器控制台的Network面板,确认该请求的Response返回内容是否符合预期(是对象还是字符串)
  • 检查是否存在跨域报错(控制台会有CORS相关提示)
  • 确认token()函数确实返回了有效的字符串值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:30:57