我有一个相当简单的脚本运行在谷歌工作表上。
该脚本接受webhook POST并将webhook的内容作为新行写入电子表格中。
脚本确实按预期运行,并且在接收数据时写入新行。
然而,由于某些原因,我发送webhook的应用程序收到了返回的"Bad Request 400“错误。即使脚本起作用了,它做了它应该做的事情。
这是我正在使用的脚本的fiddle。
如果我手动调用它,我确实得到了200响应:
var response = UrlFetchApp.fetch("https://script.google.com/macros/s/AKfycbx5ubu78yi5sj2D9z-2m3Wqog604wY1ENwP3pZstnB95Mc5_N3b/exec", options);
这是一个上面有表单的landing page。当您提交表单时,表单数据将通过webhook推送到Google工作表。(单击"Click Me To Test This Script“查看表单,如果提交表单,您将看到实际的表单。)
发布于 2020-05-01 07:59:08
可以通过使用UrlFetchApp类的fetch(url, params)方法并将muteHttpExceptions选项设置为true来解决此问题。下面是post请求的示例。
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(ObjectToSend),
'muteHttpExceptions':true,
};
var noMancoResponse = UrlFetchApp.fetch('URL', options);
console.log("Status Code: " + String(noMancoResponse.getResponseCode()));
希望这能有所帮助!
发布于 2016-06-26 10:27:05
我也遇到了同样的问题,在多次重发HTTP请求后,我意识到这是由于内容安全策略头造成的。如果它是由服务器设置的,并且您的源不满足其规则,那么浏览器将显示错误400。
如果UrlFetchApp中有一个选项可以抑制这个错误,那就太好了。
我还没有找到任何解决方案来修复它。如果你这样做了,请让我知道。
https://stackoverflow.com/questions/36742212
复制