Доступ к XMLHttpRequest на https://script.google.com/macros/ заблокирован политикой CORS - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть 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)

} 
...