Пытаюсь отправить данные из формы в таблицу гугла. При отправке появляется ошибка
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
Подскажите, пожалуйста, как именно нужно осуществлять запрос чтобы этой ошибки не возникало.
Данный метод подсмотрел здесь https://medium.com/@dmccoy/how-to-submit-an-html-form-to-google-sheets-without-google-forms-b833952cc175
Единственное что в примере используется jquery для отправки, а моя функция выглядит так:
var xhr2 = new XMLHttpRequest();
xhr2.open('GET', googleSheetUrl, true);
xhr2.setRequestHeader('Content-type', 'application/json');
xhr2.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr2.send(googleData);
В прочем с jquery у меня та же самая ошибка появляется.
И еще одно - тестирую все на реальном хостинге, а не на локальном.
Заранее спасибо за помощь!
Ваша проблема состоит в том что сервер устанавливает заголовок Access-Control-Allow-Origin а не клиент. Простым языком на сервере есть список разрешенных адресов (если не установлен флаг Access-Control-Allow-Origin: * т.е. все адреса), если ваш адрес не имеется в списке он вам возвратит:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
Статью которую вы читали написано:
The last two of these three options are extremely important to set correctly or you won’t be able to access your script with an AJAX request. You must execute the app as yourself and you must give “Anyone, even anonymous” access to the app. Without these settings your script will reject any request from a different server, like your form’s AJAX request, because it won’t be configured to allow for cross-origin resource sharing (CORS).
Once you’ve configured these options, go ahead and click “Deploy.”
You will the be presented with the URL for your web app. This is where we’ll be sending our AJAX request so copy that URL and save it for later.
Почитайте про технологию CORS.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости