我怀疑这是一个奇怪的请求,但我只能责怪自己在Google网站上 Build 公司内部网 .

我们使用Google协作平台公告页面发布公司博客 . 但是,我想将Intranet前端设计为具有响应性,这意味着我们需要Javascript在加载时运行,Google Sites不会这样做 . 我可以通过创建一个完全控制的Google Apps脚本来解决这个问题,并且我已经能够以响应的方式将Google日历嵌入到新页面中 .

由于我无法将公告页面作为小工具检索并插入到应用程序脚本中(据我所知),我想我会尝试制作HTTP XML请求并根据需要格式化结果 . 我很确定我可以,因为我可以在导航时通过Web浏览器查看XML代码

https://sites.google.com/a/MyCompany.com/intranet/home/myblog/posts.xml

然而,当我运行我的代码时,我收到以下错误:

userCodeAppPanel:1 XMLHttpRequest无法加载https://sites.google.com/a/Mycompany.com/intranet/home/mybog/posts.xml . 请求的资源上不存在“Access-Control-Allow-Origin”标头 . 因此,不允许来源“https://n-ehgaacgvmatwqlcmd25gfeqoc7k4ky5rxijj2rq-0lu-script.googleusercontent.com” . 响应具有HTTP状态代码403 .

{"readyState":4,"status":404,"statusText":"error"}

我认为Google Sites网页不接受CORS请求 . 真的吗?有人可以帮助我从我的网站公告页面获取XML内容吗?

主HTML页面

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <?!= HtmlService.createHtmlOutputFromFile('CSS').getContent(); ?>
  </head>
  <body onload="start()">
   <?!= HtmlService.createHtmlOutputFromFile('JS-Intranet').getContent();?>
  </body>
</html>

JS-Intranet.html

<script>
var adhcal = '<iframe src="https://calendar.google.com/calendar/embed?</iframe>'
var clincal = '<iframe src="https://calendar.google.com/calendar/embed?</iframe>';
var intranet = 'https://sites.google.com/a/mycompany';
var blogPath = '/intranet/home/myblog/posts.xml';
var url = 'https://sites.google.com/a/mycompany.com/intranet/home/myblog/posts.xml';


function start()
{
 var adhDiv = $('<div></div>').attr('id', 'adhDiv');
 $('body').append(adhDiv);
 adhDiv.width('100%').height('400');
 adhcal = adhcal.replace('height="100%"', 'height="'+adhDiv.height()+'"');
 adhDiv.append(adhcal);
 
 
$.ajax({
    url: intranet+'?path='+blogPath+'&type="text/html"',
    success: function (data) { 
        console.log('Page was succesfully retrieved');
        console.log(data.feed.entry[0].title); //print Page Title
    },
    error: function (error) {
        console.log(JSON.stringify(error));
    },
    dataType: 'text/html'
});
 

}
</script>

.gs文件只是从Intranet.html文档生成HTML模板 . 所有提升都在JS中完成 .

纳撒尼尔谢谢你