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

Ala*_*lls 9 google-apps-script

鉴于此URL:

https://script.google.com/macros/s/MacroName/dev?theArg="69.28.15.332"
Run Code Online (Sandbox Code Playgroud)

最重要的部分是:

?theArg="69.28.15.332"
Run Code Online (Sandbox Code Playgroud)

我正在尝试将信息传递到URL中的Apps脚本.为什么我的.gsGoogle Apps脚本函数不能获取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>")
  }
};
Run Code Online (Sandbox Code Playgroud)

我在浏览器中输出了这个错误信息:

脚本已完成但未返回任何内容

Logger.log不登录的东西.它记录[Date Time EDT] "69.28.15.332"并且日志中的值与我正在检查的值完全相同.但是平等测试失败了.

Ser*_*sas 17

参数"按原样"传递,您可以使用如下代码测试它:

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)
}; 
Run Code Online (Sandbox Code Playgroud)

这将返回"69.28.15.332"包括引号......

所以你有2种可供选择的可能性:

  1. 删除网址中的引号
  2. 在你的条件中添加引号,如'"69.28.15.332"'(单引号+引号)

我会选择第一个,但没有充分的理由;-)