Google App Script Web App GET and POST request blocked by CORS policy
Solution 1: [1]
Although I'm not sure about your Google Apps Script of Web Apps from your question, how about this modification?
Modification points:
I think that your Web Apps might return no values. You can put
return ContentService.createTextOutput()
in the functions ofdoPost()
anddoGet()
. By this, at Google Apps Script, the status 200 is returned.function doPost(e) { // or doGet(e) // do something return ContentService.createTextOutput(); // Please add this. }
You can modify the client-side script as follows:
fetch("https://script.google.com/macros/s/AKfycbxkG5hM6MMswwHdzWSJKwutMYsOZRT3zjC7jFti0sDvJ47bWB4BTsHPhvbyEVGSsSc5/exec", { method: 'POST', body: data, headers: { 'Content-Type': 'text/plain;charset=utf-8', } }).then(response => { console.log("success:", response); }).catch(err => { console.log("Error:" + err); });
Note:
- When you modified the Google Apps Script of Web Apps, please deploy the Web Apps as new version. By this, the latest script is reflected to Web Apps. Please be careful this.
References:
If I misunderstood your question and this was not the result you want, I apologize.
Solution 2: [2]
I have to change access from only me to Anyone.
Solution 3: [3]
Only the following works for me:
In Google Apps Script
function doPost(e) {
return ContentService.createTextOutput(JSON.stringify({status: "success"})).setMimeType(ContentService.MimeType.JSON);
}
In JavaScript
fetch(URL, {
redirect: "follow",
method: "POST",
body: JSON.stringify(DATA),
headers: {
"Content-Type": "text/plain;charset=utf-8",
},
})
Credits
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Credit |
---|---|
Solution 1 | Tanaike |
Solution 2 | Sanskar Tiwari |
Solution 3 | Hari Das |