找不到脚本函数:doGet(AGAIN !!!)

时间:2020-08-01 19:32:22

标签: google-apps-script web-applications get

因此,我已经阅读了几乎所有有关使之起作用的文章和主题,这似乎是一个常见的问题,其原因范围广泛。我找不到解决方案,因此希望你们能提供帮助。

我发布了脚本并得到了典型的脚本(找不到脚本功能:doGet)。

这是脚本和html脚本代码。我已将新发布的链接上载到html文件。我确定要制作一个“新”版本,而不是更新旧版本。我假设某些地方的语法我没有正确指出。我只是不知道在什么地方。希望您能提供帮助。

这是脚本代码:

    var sheetName = 'Sheet1'
    var scriptProp = PropertiesService.getScriptProperties()

    function intialSetup () {
      var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
      scriptProp.setProperty('key', activeSpreadsheet.getId())
    }

    function doPost (e) {
      var lock = LockService.getScriptLock()
      lock.tryLock(10000)

      try {
        var doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
        var sheet = doc.getSheetByName(sheetName)

        var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
        var nextRow = sheet.getLastRow() + 1

        var newRow = headers.map(function(header) {
          return header === 'timestamp' ? new Date() : e.parameter[header]
        })

        sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])

        return ContentService
          .createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
          .setMimeType(ContentService.MimeType.JSON)
      }

      catch (e) {
        return ContentService
          .createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
          .setMimeType(ContentService.MimeType.JSON)
      }

      finally {
        lock.releaseLock()
      }
    }
        

这是HTML代码中的脚本

    <script>
        const scriptURL = 'https://script.google.com/macros/s/AKfycbwzy6qtuvcOpOrl9ELoy6lM9k5CFhZWGbb-XriD1SyofDeZ6tU/exec'
        const form = document.forms['google-sheet']
      
        form.addEventListener('submit', e => {
          e.preventDefault()
          fetch(scriptURL, { method: 'POST', body: new FormData(form)})
            .then(response => alert("Thanks for Contacting us..! We Will Contact You Soon..."))
            .catch(error => console.error('Error!', error.message))
        })
      </script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

1 个答案:

答案 0 :(得分:0)

使用Web浏览器打开Web应用程序URL时,必须

doGet。问题中包含的代码不包含此功能。

参考

相关问题