Сценарий Google Apps: JSON и JSONP, разница с доступом к приложениям "только я" - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу, чтобы у моего приложения был доступ "только я", и чтобы он возвращал JSON с помощью doGet, но он возвращает ошибку браузера. "Доступ к XMLHttpRequest в" https://script.google.com/macros/s/*******/exec' из источника "null" был заблокирован политикой CORS: В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». ", Но когда я возвращаю JSONP, ошибки нет, почему? Нужно ли мне придерживаться JSONP, когда я хочу, чтобы у моего приложения был доступ «только я».

function doGet(e) {

  // do whatever this webapp is for
  var result = {}
  if(e.parameter.callback){
    result = { result : "JSONP success" }; 
  } else{
    result = { result : "JSON success" }; 
  }

  // prepare the result
  var s = JSON.stringify(result);
  // publish result
  return ContentService
    .createTextOutput(e.parameter.callback ? e.parameter.callback + "(" + s + ")" : s )
    .setMimeType(e.parameter.callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); 
}

клиентский скрипт

<script>
  $(function() {
    $.ajax({
      type: "get",
      url:
        "https://script.google.com/macros/s/*******/exec?callback=ctrlq",
      data: {},
      dataType: "jsonp"
    });

    $.ajax({
      type: "get",
      url:
        "https://script.google.com/macros/s/*******/exec",
      data: {},
      dataType: "json"
    }).done(function(e) {
      console.log(e);
    });
  });

  function ctrlq(e) {
    console.log(e);
  }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...