返回

如何修复公司 Google 帐号下 Appscript doGet 函数不工作的 CORS 问题?

vue.js

在使用公司 Google 帐号后,修复 Appscript doGet 函数不工作的 CORS 问题

问题背景

当你将 Appscript 项目转移到公司 Google 帐号时,你的 doGet 函数可能会遇到 CORS 错误,即使不应该出现这种情况。本文将深入探讨这个问题及其解决方法。

原因和解决方案

验证部署设置

确保 doGet 函数部署为 Web 应用,并设置“谁有权限访问”为“Generation 内的任何人”。

检查 Firebase 身份验证

确认你使用正确的公司电子邮件地址登录 Firebase,并且 Firebase 项目与你的公司 Google 域关联。

调整 Appscript 脚本

在 Appscript 脚本中,添加代码以验证调用者的电子邮件地址。例如:

function doGet(e) {
  if (e.parameter.email !== "[[email protected]](/cdn-cgi/l/email-protection)") {
    return ContentService.createError().setStatusCode(401);
  }
}

发送电子邮件

在 Vue 应用程序中,将调用者的电子邮件地址作为提取请求的一部分发送至 Appscript:

fetch('https://script.google.com/macros/s/[SCRIPT_ID]/exec', {
  method: 'POST',
  body: JSON.stringify({email: '[YOUR_EMAIL_ADDRESS]'})
})

提示和注意事项

  • 确保 Appscript 项目未被锁定。
  • 检查浏览器是否禁用了 CORS 请求。
  • 清除浏览器的缓存和 Cookie。

结论

遵循这些步骤,你应该可以修复 Appscript doGet 函数在使用公司 Google 帐号登录后不工作的 CORS 问题。通过验证部署设置、调整 Appscript 脚本以及在 Vue 应用程序中发送电子邮件,你将能够成功调用该函数。

常见问题解答

  1. 为什么在公司 Google 帐号下会发生 CORS 错误?

这可能是因为 Appscript 尚未正确注册登录为公司登录。

  1. 如何验证我的调用者的电子邮件地址?

在 Appscript 脚本中使用 if 语句检查 e.parameter.email

  1. 如何将我的电子邮件地址发送到 Appscript?

在 Vue 应用程序中,使用 JSON.stringify() 将电子邮件地址作为请求的一部分发送。

  1. 如果我仍然遇到 CORS 错误怎么办?

检查浏览器控制台是否存在错误消息,并确保你的 Appscript 项目未被锁定。

  1. 为什么在切换到公司 Google 帐号后需要这些步骤?

这些步骤是必要的,因为公司登录时验证流程有所不同,需要额外的验证步骤来确保安全。