将值从 ajax 传递到 Google Apps Script

Pass value from ajax to Google Apps Script

本文关键字:Google Apps Script ajax      更新时间:2023-09-26

我是Google Apps Script的新手,我正在尝试制作一个Web应用程序,我可以在其中将值从Ajax传递到脚本的Web应用程序。我可以直接从 Web 应用程序执行它,但它无法从我的网页上工作。这是我的代码,

网页的 JS

$(document).ready(function () {
  $('#btnGet').click(function () {
    var getId = $('#text').val();
    $.ajax({
      url: "https://script.google.com/macros/s/AKfycbwpkBW7qKZBeJ011C7j3le4vV8D0SEHu9709mWtEMzJgrJmHnaR/exec",
      data: getId,
      type: "GET",
      crossDomain: true,
      success: function (data) {
        console.log(data);
        alert("Success!");
      },
      error: function (data) {
        console.log(data);
        alert("Failed!");
      }
    });
  });
});

谷歌应用套件

function doGet(e) {
  var html ="<input type='text' id='text' /><br><br><input type='button' id='btnGet' onclick='myClick()' value='submit' /><br><br>";
  html+="<script>";
  html+="document.getElementById('btnGet').onclick = function() { var e = document.getElementById('text').value; google.script.run.newEntry(e); }</script>";
  return HtmlService.createHtmlOutput(html);
}
function newEntry(text) {
  Logger.log(text);
  var ss = SpreadsheetApp.openById(text);
  var sheet = ss.getSheetByName("Sheet1");
  var lr = sheet.getLastRow();
  sheet.getRange(lr+1, 1, 1, 3).setValues([["First Name", "Last Name", "Email"]]);
}

如何将值从 ajax 传递到我的应用程序脚本?

尝试将

您发送的数据附加到 url 的末尾:

"ScriptUrl/exec?getIdKey=getIdValue"

文档。

您的data财产可能只是被忽略了。

然后,可以使用以下命令doGet(e)访问该值:

var getIdValue = e.parameter.getIdKey

文档

您必须进行页面重定向,并在单击或其他内容时导航到脚本的已发布网址

因为禁止对 Google Apps 脚本服务器的 XHR 请求

禁止从外部客户端发出XHR请求,但在Google App Script编辑器中,对服务器端脚本(即.gs文件中的任何一个函数)的调用默认是异步的,可以使用google.script.run

有关更多信息,请参阅官方文档。

谷歌应用脚本限制