установить заголовки http в скрипте приложений Google - PullRequest
2 голосов
/ 10 января 2020

Я создавал веб-приложение, используя скрипт Google Apps, и у меня были такие ошибки:

Access to CSS stylesheet at 'https://script.google.com/.../exec?url=style.css' from origin 'https://...-script.googleusercontent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Access to script at 'https://script.google.com/.../exec?url=script.js' from origin 'https://...-script.googleusercontent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 

как мне добавить заголовок Access-Control-Allow-Origin?

function doGet(e){
  var t,r;
//...
  if(t=='text/html'||t=='text/x-server-parsed-html'){return HtmlService.createHtmlOutput(r);}
  r=ContentService.createTextOutput(r);
  r.setMimeType(ContentService.MimeType.TEXT);
  if(/[^\/]+?\/([^.]+?\.)?([^+]+?\+)?xml/.test(t)){r.setMimeType(ContentService.MimeType.XML);}
  if(t=='application/atom+xml'){r.setMimeType(ContentService.MimeType.ATOM);}
  if(t=='text/csv'){r.setMimeType(ContentService.MimeType.CSV);}
  if(t=='text/calendar'){r.setMimeType(ContentService.MimeType.ICAL);}
  if(t=='application/javascript'||t=='text/javascript'){r.setMimeType(ContentService.MimeType.JAVASCRIPT);}
  if(t=='application/json'){r.setMimeType(ContentService.MimeType.JSON);}
  if(t=='application/rss+xml'){r.setMimeType(ContentService.MimeType.RSS);}
  if(t=='text/vcard'){r.setMimeType(ContentService.MimeType.VCARD);}
  if(e.parameter.name){r.downloadAsFile(e.parameter.name)}
  return r;
}

1 Ответ

1 голос
/ 13 января 2020

Вы не можете изменять заголовки CORS в веб-приложении Google Apps Script. Это сделано Google для обеспечения безопасности их пользователей.

Однако я вижу, что вы пытаетесь получить файлы, такие как style.css или script.js. Если это так - и вы используете теги "classi c" HTML для их включения (например, <link rel="stylesheet" ... и <script src=..., я предлагаю вам сделать следующее:

  1. Замените файл style.css на файл style.html HTML, содержимое которого должно быть следующим:

    <style>
    ...
    </style>
    

    Где ... должен быть вашим CSS кодом .

  2. Заменить файл script.js на файл script.html HTML, содержимое которого должно быть:

    <script>
    ...
    </script>
    

    Где ... должно быть вашим кодом сценария.

  3. Включите новые созданные выше файлы в ваш основной HTML с помощью скриптлетов (см. пример ниже). Найдите местоположение вашего HTML файла, в котором Вы хотите ввести код и использовать для этого следующие теги:

    <?!= include('style'); ?>
    
    <?!= include('script'); ?>
    

Пример

Код. gs

function doGet(request) {
  return HtmlService.createTemplateFromFile('Page')
      .evaluate();
}

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .getContent();
}

Стр. html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <?!= include('Stylesheet'); ?>
  </head>
  <body>
    <h1>Welcome</h1>
    <p>Please enjoy this helpful script.</p>
    <?!= include('JavaScript'); ?>
  </body>
</html>

Таблица стилей. html

<style>
p {
  color: green;
}
</style>

JavaScript. html

<script>
window.addEventListener('load', function() {
  console.log('Page is loaded');
});
</script>

Re feferences

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...