相关疑难解决方法(0)

Google Apps脚本跨域请求已停止工作

我有一个错误报告信标我使用Google Apps脚本创建,它发布为我自己运行,并且"任何人,甚至匿名"都可以访问,这应该意味着允许向GAS发送X域请求.

但是,我的浏览器现在指示Access-Control-Allow-Origin代码发布到信标后响应上没有标头.

我在这里错过了什么吗?这曾经是两个月前的工作.只要GAS发布用于公共访问,那么就是设置Access-Control-Allow-Origin标题.

在Google Apps脚本中:

Code.gs
function doPost(data){
  if(data){
        //Do Something
  }
  return ContentService.createTextOutput("{status:'okay'}", ContentService.MimeType.JSON);
}
Run Code Online (Sandbox Code Playgroud)

客户端:

的script.js
$.post(beacon_url, data, null, "json");
Run Code Online (Sandbox Code Playgroud)

javascript cross-domain cors google-apps-script

16
推荐指数
3
解决办法
1万
查看次数

尝试发送POST请求时,App脚本会发送405响应

我已经使用doPost方法公开发布了一个应用程序脚本(任何人,甚至是匿名的),如下所示,

 function doPost(e){
    var sheet = SpreadsheetApp.getActiveSheet();
    var length = e.contentLength;
    var body = e.postData.contents;
    var jsonString = e.postData.getDataAsString();
    var jsonData = JSON.parse(jsonString);
    sheet.appendRow([jsonData.title, length]);
    var MyResponse = "works";
    return ContentService.createTextOutput(MyResponse).setMimeType(ContentService.MimeType.JAVASCRIPT);
}
Run Code Online (Sandbox Code Playgroud)

当我使用带有Advanced Rest Client的JSON对象发送一个Post请求时,它全部工作并返回200 OK响应.但是当我尝试从本地托管的反应应用程序发送带有反应axios的发布请求时,它会发送405响应.

XMLHttpRequest cannot load https://script.google.com/macros/s/AKfycbzyc2CG9xLM-igL3zuslSmNY2GewL5seTWpMpDIQr_5eCod7_U/exec. Response for preflight has invalid HTTP status code 405
Run Code Online (Sandbox Code Playgroud)

我也在浏览器中启用了跨源资源共享.发送POST请求的功能如下,

axios({
          method:'post',
          url:'https://script.google.com/macros/s/AKfycbzyc2CG9xLM-igL3zuslSmNY2GewL5seTWpMpDIQr_5eCod7_U/exec',
          data: {
            "title": 'Fred',
            "lastName": 'Flintstone'
          }
        }).then(function (response) {
            console.log(response);
          })
          .catch(function (error) {
            console.log(error);
          });
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我为什么收到405回复,那将是非常感激的.

google-apps-script axios

7
推荐指数
1
解决办法
1万
查看次数

如何在我的谷歌脚本中允许 CORS 请求?

我想将我的联系表格发布到我的 google 脚本,该脚本将向我发送电子邮件。我使用以下代码:

var TO_ADDRESS = "example@gmail.com"; // where to send form data

function doPost(e) {

  var callback = e.parameter.callback;

  try {
    Logger.log(e); // the Google Script version of console.log
    MailApp.sendEmail(TO_ADDRESS, "Contact Form Submitted",
                      JSON.stringify(e.parameters));
    // return json success results
    return ContentService
          .createTextOutput(callback+
          JSON.stringify({"result":"success",
                          "data": JSON.stringify(e.parameters) }))
          .setMimeType(ContentService.MimeType.JSON);
  } catch(error) { // if error return this
    Logger.log(error);
    return ContentService
          .createTextOutput(callback+JSON.stringify({"result":"error", 
          "error": e}))
          .setMimeType(ContentService.MimeType.JSON);
  }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试发布到 google 脚本 url 时,出现以下错误:

CORS 政策已阻止在 ' https://script.google.com/macros/s/~~myscriptid~~/exec ' 从源 ' http://localhost:4200 '访问 XMLHttpRequest …

cors google-apps-script

5
推荐指数
4
解决办法
9850
查看次数