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;
}