CORS ERROR 405 (Methode nicht erlaubt) - Google App -SkripteJavaScript

Javascript-Forum
Anonymous
 CORS ERROR 405 (Methode nicht erlaubt) - Google App -Skripte

Post by Anonymous »

Ich habe eine sehr einfache Webseite, auf der nur eine Schaltfläche enthält, die den folgenden Beitrag an meinen Google App -Skriptscode übermittelt. Beim Testen klicke ich auf die Schaltfläche, um die Funktion "sendTest () auszuführen und den folgenden Fehler in der Konsole zu erhalten:

Zugriff auf das Fetch unter 'https://script.google.com/macros/s/s/s.0.0.0.1.1.1.1.1. Um die Anforderung vor dem Flug zu übergeben, gibt es in der angeforderten Ressource keine Überprüfung der Zugriffskontrolle. Wenn eine undurchlässige Antwort Ihren Anforderungen dient, setzen Sie den Modus der Anforderung auf "No-Cors", um die Ressource mit deaktiviert CORs abzuholen. Ich habe versucht, den Header ohne Glück manuell hinzuzufügen. < /P>
Jeder Punkt in die richtige Richtung wäre sehr geschätzt.

Code: Select all

Send Test POST

async function sendTest() {
try {
const payload = {
responses: [
{ category: 'Test', question: 'Q?', recommendation: 'Do X' }
]
};

console.log('Sending:', JSON.stringify(payload));

const response = await fetch('https://script.google.com/macros/s/[redacted]/exec', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload),
mode: 'cors',
credentials: 'omit'
});

console.log('Response status:', response.status);
console.log('Response headers:', [...response.headers.entries()]);

if (!response.ok) {
const errorText = await response.text();
throw new Error(`HTTP error! Status: ${response.status}, Details: ${errorText}`);
}
const result = await response.json();
console.log('Response:', result);
} catch (error) {
console.error('Fetch error:', error);
}

}
< /code>

Google App Skriptcode: < /p>
function doGet(e) {
var output = JSON.stringify({
status: 'success',
message: 'It worked',
});

return ContentService.createTextOutput(output)
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
return ContentService.createTextOutput(JSON.stringify({status: "success", "data": "my-data"})).setMimeType(ContentService.MimeType.JSON);
}
function doOptions(e) {
const output = ContentService.createTextOutput('');
output.setMimeType(ContentService.MimeType.TEXT);
output.addHeader('Access-Control-Allow-Origin', '*');
output.addHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
output.addHeader('Access-Control-Allow-Headers', 'Content-Type');
return output;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post