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

Zoho Catalyst登出页面报错:ReferenceError: Catalyst未定义

解决Zoho Catalyst登出功能的ReferenceError问题

部署在Zoho Catalyst上的网页实现登出功能时,出现如下错误:

ReferenceError: Catalyst is not defined at logout.html:17:24

用户的原代码如下:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cierre de Sesión</title>
</head>
<body>
    <table>
        <tr>
            <td><a class="boton" id="cerrar-sesion" href="#">Cerrar Sesión</a></td>
        </tr>
    </table>

    <script src="https://static.zohocdn.com/catalyst/sdk/js/4.0.0/catalystWebSDK.js"></script>
    <script>
        var catalyst = new Catalyst({
            projectID: 'project_ID',
            clientID: 'Client_ID',
            clientSecret: 'Client_Secret'
        });

        catalyst.init();

        function cerrarSesion(event) {
            event.preventDefault();
            var redirectURL = "https://redirect-url.com/baas/logout?logout=true&PROJECT_ID=my_project_ID";
";
            catalyst.auth.signOut(redirectURL)
            .then(function() {
                console.log("Sesión cerrada correctamente");
                window.location.href = redirectURL;
            })
            .catch(function(error) {
                console.error("Error al cerrar sesión:", error);
            });
        }

        document.addEventListener("DOMContentLoaded", function() {
            document.getElementById("cerrar-sesion").addEventListener("click", cerrarSesion);
        });
    </script>
</body>
</html>

错误原因分析

  • 构造函数名称错误:Zoho Catalyst Web SDK v4.x的全局构造函数是ZCatalyst,而非Catalyst,这是触发ReferenceError的核心原因。
  • 语法错误:定义redirectURL时多了一行多余的";,会导致脚本解析中断。
  • 安全隐患:Web端初始化SDK无需传入clientSecret,该密钥属于敏感信息,绝对不能暴露在前端代码中,官方Web SDK初始化仅需projectID和clientID。

修正后的代码

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cierre de Sesión</title>
</head>
<body>
    <table>
        <tr>
            <td><a class="boton" id="cerrar-sesion" href="#">Cerrar Sesión</a></td>
        </tr>
    </table>

    <script src="https://static.zohocdn.com/catalyst/sdk/js/4.0.0/catalystWebSDK.js"></script>
    <script>
        // 使用正确的ZCatalyst构造函数,移除敏感的clientSecret
        var catalyst = new ZCatalyst({
            projectID: 'project_ID',
            clientID: 'Client_ID'
        });

        catalyst.init();

        function cerrarSesion(event) {
            event.preventDefault();
            // 修复语法错误,移除多余的引号和分号
            var redirectURL = "https://redirect-url.com/baas/logout?logout=true&PROJECT_ID=my_project_ID";
            
            catalyst.auth.signOut(redirectURL)
            .then(function() {
                console.log("Sesión cerrada correctamente");
                window.location.href = redirectURL;
            })
            .catch(function(error) {
                console.error("Error al cerrar sesión:", error);
            });
        }

        document.addEventListener("DOMContentLoaded", function() {
            document.getElementById("cerrar-sesion").addEventListener("click", cerrarSesion);
        });
    </script>
</body>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:00:04