现在,我从Omnifaces生成的googleAds脚本中加载CDNResourceHandler脚本
<script type="text/javascript" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>现在,如果我尝试将Omnifaces deferredScript与CDN资源处理程序一起加载相同的库,则浏览器将显示消息。
从源'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js‘访问脚本的'https://xxxx’已被CORS策略阻止:请求的资源上没有“访问控制-允许-原产地”标题。
生成的html
<script type="text/javascript">OmniFaces.DeferredScript.add('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');</script>你能解释一下怎么让它工作吗?将deferredScript和CDNResourceHandler实用程序结合起来是可能的,但它似乎会产生CORS问题。如何解决这个问题?
发布于 2017-02-10 13:17:30
从来没有想过要获得外部资源。
造成您的技术问题是因为这个标记明确地说设置crossorigin="anonymous"属性以支持脚本错误报告(这样JavaScript错误就可以发送到服务器端进行日志记录)。当未设置该属性时,您的具体问题将得到解决。
当脚本的src是外部的时候,您可以向OmniFaces人员报告一个问题并告诉他们跳过这个属性。现在,只需继续使用普通的<script>元素即可。您可以使用#{resource}根据库和名称生成所需的URL。
<script src="#{resource['cdn:adsbygoogle.js']}">这为手动设置元素上的async="true"属性提供了空间。
https://stackoverflow.com/questions/42154883
复制相似问题