I'm using the App script to post data from my web app and write into Sheet but failed with CORS error tried few code suggested by others
Here is the code on App script:
function doPost(e) {
var params = e.postData;
var selected = params.selectedYear;
var ss = SpreadsheetApp.openById("1GeHldpOtB9CZAQjVZH66HJvPAAj7");
var sheet = ss.getSheetByName("Sheet1");
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1).setValue(selected);
return ContentService.createTextOutput("success");
}
Web app code:
fetch(apiUri, {
method: 'POST',
body: {"selectedYear": 1998},
headers: {
'Content-Type': 'text/plain;charset=utf-8',
} }).then(response => {
console.log("success:", response);}).catch(err => {
console.log("Error:" + err);
});
Error shown:
Hope can get some idea from here, thanks
In your showing script, how about the following modification?
function doPost(e) {
var params = JSON.parse(e.postData.contents);
var selected = params.selectedYear;
var ss = SpreadsheetApp.openById("1GeHldpOtB9CZAQjVZH66HJvPAAj7");
var sheet = ss.getSheetByName("Sheet1");
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1).setValue(selected);
return ContentService.createTextOutput("success");
}
const apiUri = "https://script.google.com/macros/s/###/exec"; // Please set your Web Apps URL.
fetch(apiUri, {
method: 'POST',
body: JSON.stringify({ "selectedYear": 1998 }),
headers: {
'Content-Type': 'text/plain;charset=utf-8',
}
})
.then(res => res.text())
.then(response => {
console.log("success:", response);
}).catch(err => {
console.log("Error:" + err);
});
success: success
is shown in the console. And, the value of 1998
is put into column "A" of "Sheet1".When you modify the Google Apps Script of Web Apps, please modify the deployment as a new version. By this, the modified script is reflected in Web Apps. Please be careful about this.
You can see the details of this in my report "Redeploying Web Apps without Changing URL of Web Apps for new IDE (Author: me)".