我正在尝试POST
对简单应用脚本的请求。
这是代码:
var BACKEND_URL = "https://script.google.com/macros/s/AKfycbyYAWMv6O8Xld1EvqPuBk9EgxgfpVNly3dyX3JkSc3h/dev";
data = {"obj1": "data1", "obj2": "data2"};
function doGet() {
var resp = UrlFetchApp.fetch(BACKEND_URL, {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(data),
'muteHttpExceptions': true
});
Logger.log(resp);
}
这是应该接受POST请求的服务器代码:
function doGet() {
}
function doPost(e) {
Logger.log("posted");
return;
}
注意:URL中没有用户部分,因此此问题与SO中发布的类似问题不同。
作为响应,获取一个html页面,对不起,抱歉,当前无法打开文件。请检查地址,然后重试。
我重新检查了该页面,它确实存在。
答案 0 :(得分:1)
在您的情况下,带有doGet()
且包含UrlFetchApp.fetch()
的项目不同于带有doPost(e)
的项目。并且您想通过运行包含doPost()
的{{1}}来调用doGet()
。如果我理解您的情况是正确的,您可以确认以下几点。
UrlFetchApp.fetch()
包括BACKEND_URL
。这用于使用最新的代码。但是有如下限制。因此,请尝试使用dev
之类的当前Web应用程序URL 。第二个是标记为最新代码的链接,并以/ dev结尾。只有对该脚本具有编辑权限的用户才能访问此URL。该应用程序实例始终运行最新保存的代码(不一定是正式版本),并且旨在在开发过程中进行快速测试。
在Web Apps中,当没有返回消息时,将返回错误消息https://script.google.com/macros/s/#####/exec
。如果要获取返回消息,请使用Content Service进行设置。
修改了Web Apps端的脚本后,请重新部署Web Apps作为新版本。这样,最新的脚本就会反映到Web Apps。
如果这些对您的情况没有帮助,对不起。
部署Web Apps时,请尝试以下设置。