У меня есть таблица Google, которую я использую для хранения данных с веб-страницы. В качестве эксперимента я создал расширение Chrome, которое удаляет данные со страницы и отправляет запрос POST к GAS, привязанному к моему листу. Обработка POST была легкой после того, как я нашел и нашел фрагмент онлайн:
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NAME");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow();
var cell = sheet.getRange('a1');
var col = 0;
for (i in headers){
if (headers[i] == "Timestamp"){
val = new Date();
} else {
val = e.parameter[headers[i]];
}
cell.offset(nextRow, col).setValue(val);
col++;
}
}
Затем я развернул его как веб-приложение с доступом: Любой, даже анонимный
Почтальон отлично справляется со своей задачей, и я действительно получаю нужные данные.
Когда мое расширение Chrome выполняет POST, я получаю следующую ошибку:
Изображение из Chrome Dev Tools
Не удалось загрузить https: /script.google.com/macros/s/xxxxx/exec: Нет
Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном
ресурс. Следовательно, происхождение 'chrome-extension: // random' не разрешено
доступ.
Исходя из моего ограниченного понимания, я должен установить заголовок ответа Access-Control-Allow-Origin
, который мой скрипт GA отправляет в источник запроса, отсюда и мое расширение.
Как я могу это сделать? Или, если я ошибаюсь, как мне решить эту проблему?