Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript doGet(e)参数未定义_Javascript_Jquery_Google Apps Script - Fatal编程技术网

Javascript doGet(e)参数未定义

Javascript doGet(e)参数未定义,javascript,jquery,google-apps-script,Javascript,Jquery,Google Apps Script,我试图用谷歌应用程序脚本doGet(e)方法处理查询参数。我定义了以下简单的doGet()函数,它根据参数(或缺少参数)为不同的html提供服务 正如您从我的日志代码中看到的,我正在努力弄清楚在没有查询参数的情况下最初调用doGet()时,e参数是什么。日志输出如下所示: <script> $("#playerUI").click(function () { var queryString = "?mode=player"; google.script.run.d

我试图用谷歌应用程序脚本doGet(e)方法处理查询参数。我定义了以下简单的doGet()函数,它根据参数(或缺少参数)为不同的html提供服务

正如您从我的日志代码中看到的,我正在努力弄清楚在没有查询参数的情况下最初调用doGet()时,e参数是什么。日志输出如下所示:

<script>
  $("#playerUI").click(function () {
    var queryString = "?mode=player";
    google.script.run.doGet(queryString);
  });

  $("#holeUI").click(function () {
    var queryString = "?mode=hole";
    google.script.run.doGet(queryString);
  });

   $("#flexUI").click(function () {
    var queryString = "?mode=flex";
    google.script.run.doGet(queryString);
  });
</script>
[17-10-2418:14:48:557 PDT]开始执行[17-10-2418:14:48:565]
>PDT]Logger.log([在doGet中,[])[0秒][17-10-24 18:14:48:566
>PDT]Logger.log([query params:[对象],]])[0秒]
>[17-10-24 18:14:48:566 PDT]Logger.log([查询字符串为null:false,
>[]])[0秒][17-10-24 18:14:48:567 PDT]Logger.log([
>参数:未定义,[])[0秒][17-10-24 18:14:48:568 PDT]
>执行成功[0.003秒总运行时间]
如何处理e.parameters中没有查询参数的情况。在本例中,e似乎是未定义的。有什么想法吗

作为后续问题,我的想法是在javascript中构建与doGet提供的html文件相关联的查询字符串。例如,在上面代码中提到的“loginUI.html”文件中,我想包括使用不同参数调用google.script.run.doGet()的jquery代码,如下所示:

<script>
  $("#playerUI").click(function () {
    var queryString = "?mode=player";
    google.script.run.doGet(queryString);
  });

  $("#holeUI").click(function () {
    var queryString = "?mode=hole";
    google.script.run.doGet(queryString);
  });

   $("#flexUI").click(function () {
    var queryString = "?mode=flex";
    google.script.run.doGet(queryString);
  });
</script>

$(“#playerUI”)。单击(函数(){
var queryString=“?模式=玩家”;
google.script.run.doGet(queryString);
});
$(“#holeUI”)。单击(函数(){
var queryString=“?模式=孔”;
google.script.run.doGet(queryString);
});
$(“#flexUI”)。单击(函数(){
var queryString=“?mode=flex”;
google.script.run.doGet(queryString);
});
我的感觉是这也行不通。请告知

如何处理e.parameters中没有查询参数的情况。在本例中,e似乎是未定义的。有什么想法吗

简短回答 解释 要向Google Apps脚本编辑器写入对象的内容,请使用
JSON.stringify(object)

例如:

function doGet(e) {
  Logger.log(JSON.stringify(e));
}
打印到日志的上述代码包含以下文本:

[17-10-24 21:13:28:414 CDT]{“参数”:{},“上下文路径”:“内容长度”:-1,“查询字符串”:“参数”:{}

如您所见,有几个命名值:

  • 参数:与请求参数相对应的键/值对对象。对于具有多个值的参数,只返回第一个值
  • 上下文路径:未使用。总是空字符串
  • contentLength:对于doGet,始终返回-1
  • queryString:URL的查询字符串部分的值
  • 参数:一个类似于e.parameter的对象,但每个键都有一个值数组
参考文献


注意:第一个引用说,当没有指定查询字符串时,queryString返回
null
,但在我进行的测试中,这不是真的。

谢谢@Rubén!空查询字符串的测试有效!在比较中我还需要一个等号('=')。对后续问题有什么想法吗?如何调用doGet()并正确地向其传递查询字符串。我不认为我建议的代码中的方法会起作用。本网站上的问题应该包含一个且只有一个问题(请参阅)。我建议你将“跟进”问题作为新问题发布。
function doGet(e) {
  Logger.log(JSON.stringify(e));
}