我想通过get请求将一个参数传递给我的google电子表格。get参数名为'pid',这似乎会使Google崩溃。
我的示例脚本只是将get参数返回给客户机:
function doGet(e){
  try {
    return ContentService
          .createTextOutput(JSON.stringify({"result":"your parameters", "parameters": e.parameter}))
          .setMimeType(ContentService.MimeType.JSON);
  } catch(ee){
    return ContentService
          .createTextOutput(JSON.stringify({"result":"error", "error message": ee}))
          .setMimeType(ContentService.MimeType.JSON);
  }
}以下请求起作用:
https://script.google.com/macros/s/<sheet-id-here>/exec?a=1返回:
{“结果”:“您的参数”,“参数”:{“a”:“1”}
但是,只需更改get参数名就会返回一个错误:
https://script.google.com/macros/s/<sheet-id-here>/exec?pid=1返回:
很抱歉,服务器出错了。请稍等,再试一次。
你知道这是怎么回事吗怎么解决这个问题?这是个虫子吗?是否有办法在服务器端处理这个问题(不能真正改变我的客户端代码)?
发布于 2019-04-16 21:08:42
谷歌似乎已经改变了保留参数。正如文档中所写的,
警告:系统保留下列参数名称,不应在URL参数或POST正文中使用: C 使用这些参数的sid可能会导致HTTP 405响应,错误消息为“对不起,您请求的文件不存在”。如果可能,更新脚本以使用不同的参数名称。
现在看来,c和sid参数都是有效的,pid参数被保留并抛出。
对不起,此时无法打开文件。
服务器端似乎没有什么可以做的。
https://stackoverflow.com/questions/55716464
复制相似问题