【发布时间】:2020-12-22 08:32:11
【问题描述】:
此问题与此处发布的其他问题(例如 Google Drive Page Not Found - Sorry, unable to open the file at this time)非常相似。这并不完全相同,但我确实相信它与该帖子中说明的根本问题相同,即在登录多个 Google 帐户时尝试向 Google App Script 提交表单会导致 /u/1 和/或 @987654325 @ 添加到脚本的 URL 从而产生 404 错误。
这是使用标准 Google 帐户,而不是 G-Suite。
我在网站上有一个通过 AJAX 提交到 Google Apps 脚本的表单。该脚本进行一些 API 调用以创建包含表单收集的数据的 Google 文档。
HTML/Javascript:
<form>
<input type="text" name="full_name">
<input type="text" name="phone">
<input type="submit">
</form>
$('form').submit(function() {
var obj = $(this).serializeObject();
var gurl = "https://script.google.com/macros/s/AKfycbzmhaub3ojPARA-B-Y2uVC2BJZPaRvbgMwMTH9pd7R9aHuAD5M/exec";
$.ajax({
url: gurl,
type: "GET",
data: obj,
dataType: "jsonp",
success: function(data, status, xhr) {
console.log("success");
console.log(data);
});
});
谷歌脚本
function doGet(e) {
var params = e.parameters
var result = {};
try {
result = {
status: start(params),
msg: 'Success',
vals: formData,
rawVals: params,
errs: errors
}
} catch (f) {
result.error = f.toString();
}
return ContentService
.createTextOutput(e.parameters.callback + '(' + JSON.stringify(result) + ')')
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
在同一浏览器中登录多个 Google 帐户时提交表单会导致控制台出现以下错误,并且表单什么也不做:
jquery.js?ver=1.12.4-wp:4 GET https://script.google.com/macros/u/1/s/AKfycbzmhaub3ojPARA-B-Y2uVC2BJZPaRvbgMwMTH9pd7R9aHuAD5M/exec?callback=jQuery112407830193282901534_1608623376571&s&full_name=Dave+Pe&phone=1111111111_=1608623376572 净::ERR_ABORTED 404
当我去网络选项卡查看请求时,那里的标题选项卡显示以下内容:
Request URL: https://script.google.com/macros/u/1/s/AKfycbzmhaub3ojPARA-B-Y2uVC2BJZPaRvbgMwMTH9pd7R9aHuAD5M/exec?callback=jQuery112407830193282901534_1608623376571&s&full_name=Dave+Pe&phone=1111111111_=1608623376572
请注意已插入 URL 中的 /u/1/,但在我传递给我的 $.ajax() 调用的 URL 中不存在。
我为这个问题找到的大多数答案都说只是删除/u/1/,但由于我没有将它添加到第一个位置,我不知道我会从哪里删除它。
谁能确认这个看似已知的问题(在登录多个 Google 帐户时更改 URL)是导致我的问题的原因?关于如何提出请求的任何想法:
https://script.google.com/macros/s/AKfycbzmhaub3ojPARA-B-Y2uVC2BJZPaRvbgMwMTH9pd7R9aHuAD5M/exec
而不是
https://script.google.com/macros/u/1/s/AKfycbzmhaub3ojPARA-B-Y2uVC2BJZPaRvbgMwMTH9pd7R9aHuAD5M/exec
??还是我在这里尝试使用 Google 脚本的方式有更严重的问题?
【问题讨论】:
-
我无法理解
I do believe the issue is with trying to access a GoogleScript while logged into more than 1 account and having /u/1 and /u/0 prepended to the script's URL.。我为此道歉。我可以问一下您当前问题的详细信息和您的目标吗? -
@Tanaike - 抱歉,这是指我引用的另一篇 SO 帖子 (stackoverflow.com/questions/47045209/…) 中发现的问题。在那篇文章中,问题的原因是用户同时登录了多个 Google 帐户。我的意思是我相信这个问题也导致了这里的问题。我的目标是将在我的网站上收集的表单数据提交给 Google App Script。我的问题是请求 URL 以某种方式被修改为包含
u/1导致 404 错误
标签: javascript jquery ajax google-apps-script