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
相关产品推荐
相关产品推荐

