Я хочу отправить некоторые данные из расширения chrome в электронную таблицу через GAS, но удаляется только «последний», хотя «Заголовок» и «URL» отправляются успешно.
Следовательно, не могли бы вы любезно проверить код?
const gasUrl = "here is my spreadsheet GAS url";
chrome.tabs.query({active: true, currentWindow: true}, tabs => {
title = tabs[0].title;
url = tabs[0].url;
last = url.slice(-8); // I want to send url's last 8 letters.
console.log(`Title: ${title}`);
console.log(`URL: ${url}`);
console.log(`Last: ${last}`); // I can see "last" is worked as intend here.
});
$(function() {
$('#doit').on('click', function() {
post2GAS(title, url, last);
});
});
function post2GAS(title, url, last){
const data = {
title: title,
url: url,
last: last
}
$.ajax({
type: 'POST',
url: gasUrl,
data: JSON.stringify(data)
})
.done(function (data) {
console.log("success"); // I can see success on console.
})
.fail(function (jqXHR, textStatus, errorThrown) {
console.log("failed");
console.log("XMLHttpRequest : " + jqXHR.status);
console.log("textStatus : " + textStatus);
console.log("errorThrown : " + errorThrown);
})
.always((data) => {
console.log("finished"); // I can see finished on console.
});
}
Кажется, GAS не может правильно отловить "последний" параметр, но я не могу найти конкретную c причину.
Вот код GAS.
function doPost(e) {
var params = JSON.parse(e.postData.getDataAsString());
var title = params.title;
var url = params.url;
var last = params.last;
var sheet = SpreadsheetApp.openById('Sheet ID').getSheetByName("Sheet Name");
sheet.appendRow([title, url, last]);
var output = ContentService.createTextOutput();
output.setMimeType(ContentService.MimeType.JSON);
output.setContent(JSON.stringify( { sucsess: true }));
return output;
}
Спасибо