У меня есть Spread Sheet, я создал код script.google.com в качестве веб-API для экспорта данных электронной таблицы как json, но когда при написании кода для чтения json возникли проблемы »политика CORS заблокирована
var dataJSON;
function viewVillages(){
var xmlhttp = new XMLHttpRequest();
var url = "script.google.com";
xmlhttp.onreadystatechange = function() {
if (this.readyState == 1 ) {
console.log("1");
}
if (this.readyState == 2 ) {
console.log("2");
}
if (this.readyState == 3 ) {
console.log("3");
}
if (this.readyState == 4 && this.status == 200) {
console.log("4");
var myArr = JSON.parse(this.responseText);
myFunction(myArr);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(arr) {
dataJSON=arr;
}
}
код для публикации API веб-приложения Я публикую это как API веб-приложения, любой может получить доступ к этому приложению, эта ссылка для результата
https://script.googleusercontent.com/macros/echo?user_content_key=idpffu-SYlDxC7EuWBf-NqgCGhMPNeiXeBQUt-Tk-dDFoqb6JYzKvNyw405zrlyQEDgaTlGUksHOTbbV5Aj9STHlRS9FtMxjm5_BxDlH2jW0nuo2oDemN9CCS2h10ox_1xSncGQajx_ryfhECjZEnNhRObYMMbRvDsIN0NCwYbNGFGtS5GcRpQ0e15R5Rfx0Jy77eUQpR9E0M2qu45i7T6drUwBK3ZY_&lib=MMMohOFXoOCvrcVJ1jiPfgJKNXc8Lw_h0
function doGet(e){
var ss = SpreadsheetApp.openByUrl("url");
var sheetgoogle = ss.getSheetByName("labs");
return getUsers(sheetgoogle);
}
function getUsers(sheetgoogle){
var ps = {};
var dataArrayGoogle = [];
var rowsGoogle = sheet.getRange(2,1,sheetgoogle.getLastRow()-1, sheetgoogle.getLastColumn()).getValues();
for(var i = 0, l= rowsGoogle.length; i<l ; i++){
var dataRowGoogle = rowsGoogle[i];
var recordSheet={} ;
recordSheet[0] = dataRowGoogle[0];
recordSheet[1] = dataRowGoogle[1];
dataArrayGoole.push(recordSheet);
}
ps.user = dataArrayGoogle;
var result = JSON.stringify(ps);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON)
}