Я получаю следующие ошибки при отправке HTML
form
в Google Sheets
через Google Apps Script
:
Origin https://example.com is not allowed by Access-Control-Allow-Origin.
Fetch API cannot load https://script.google.com/macros/s/…/exec due to access control checks.
Unhandled Promise Rejection: TypeError: Origin https://example.com is not allowed by Access-Control-Allow-Origin.
На стороне сервера я ужеустановите XFrameOptionsMode.ALLOWALL
, чтобы загрузить ответ в iframe
:
return HtmlService.createHtmlOutputFromFile("Index").setXFrameOptionsMode(
HtmlService.XFrameOptionsMode.ALLOWALL
)
Чего мне не хватает?
Вот моя форма:
document.getElementsByTagName("form")[0].setAttribute("target", "Response")
document.addEventListener("submit", e => {
const form = e.target
const iframe = Object.assign(document.createElement("iframe"), {
name: "Response"
})
document.body.innerHTML = iframe.innerHTML
fetch(form.action, {
method: form.method,
body: new FormData(form)
})
e.preventDefault()
})
<form action=https://script.google.com/macros/s/AKfycbzz-KveHder1A3CX8GcqZI6GR2MQj66PDRWNKoatIET_LXNqQs/exec method=post>
<fieldset>
<legend>Select Foobar</legend>
<label><input type=checkbox name=Foobar value=Foo>Foo</label>
<label><input type=checkbox name=Foobar value=Bar>Bar</label>
<label><input type=checkbox name=Foobar value=Baz>Baz</label>
</fieldset>
<input type=submit value=Submit>
</form>
Форма подчиняется этому Google Sheet
:
https://docs.google.com/spreadsheets/d/10VHS6bozcdNFYcRskkoONMT8Rt-2CwJ_LJGQWdkTJq4/
Веб-приложение развернуто с Me
правами на выполнение и Anyone, even anonymous
доступом.