Google Apps脚本CORS XML请求到Google协作平台博客页面

时间:2017-07-17 19:18:44

标签: javascript google-apps-script xmlhttprequest cors google-sites

我怀疑这是一个奇怪的请求,但我只能责怪自己在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内容吗?

主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>
&#13;
&#13;
&#13;

JS-Intranet.html

&#13;
&#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;
&#13;
&#13;

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

谢谢你,         纳撒尼尔

0 个答案:

没有答案