如何获取传递给Google Apps Script doGet(e)的URL字符串参数

18

考虑以下网址:

https://script.google.com/macros/s/MacroName/dev?theArg="69.28.15.332"

重要的部分在结尾:

?theArg="69.28.15.332"

我正在尝试通过URL将信息传递给应用脚本。 为什么我的.gs谷歌应用脚本函数无法获取URL末尾字符串的值?这是doGet(e)函数。

function doGet(e){
  var passedInIP = e.parameter.theArg;
  Logger.log(passedInIP);

  if (passedInIP === "69.28.15.332") 
  {
    return HtmlService.createHtmlOutput("<h2>something</h2>")
  }
};

我在浏览器中看到这个错误信息:

脚本执行完毕但没有返回任何内容

Logger.log 确实记录了一些东西。它记录了[日期 时间 EDT]“69.28.15.332”, 并且该值在日志中与我要检查的值完全相同。但是等式测试失败。

1个回答

24

参数是按原样传递的,您可以使用以下类似代码进行测试:

function doGet(e){
  var passedInIP = e.parameter.theArg;
  Logger.log(passedInIP);

  if (passedInIP == "69.28.15.332") 
  {
    return HtmlService.createHtmlOutput("<h2>something</h2>")
  }
    return HtmlService.createHtmlOutput(passedInIP)
}; 

这将返回包括引号在内的"69.28.15.332"...

所以你有两种选择:

  1. 在你的URL中去掉引号
  2. 在你的条件中加上引号,像这样'"69.28.15.332"'(单引号+引号)

我会选择第一种,但没有什么好理由;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接