我怀疑这是一个奇怪的请求,但我只能责怪自己在Google网站上建立公司内部网。
我们使用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。 No' Access-Control-Allow-Origin'标题出现在请求的上 资源。起源 ' https://n-ehgaacgvmatwqlcmd25gfeqoc7k4ky5rxijj2rq-0lu-script.googleusercontent.com' 因此不允许访问。响应具有HTTP状态代码 403。
{"readyState":4,"status":404,"statusText":"error"}
我认为Google协作平台页面不接受CORS请求。真的吗?有人可以帮助我从我的网站公告页面获取XML内容吗?
<!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>
&#13;
<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>
&#13;
<。> .gs文件只是从Intranet.html文档生成HTML模板。所有提升都在JS中完成。
谢谢你, 纳撒尼尔