我目前正在http://xclamm.appspot.com/尝试使用Google App Engine / Go + Polymer.dart网站。
问题是当我使用Dartium(31.0.1612.0 Developer Build 219647)访问http://xclamm.appspot.com/时出现以下错误。
XMLHttpRequest cannot load https://talkgadget.google.com/talkgadget/channel.js. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xclamm.appspot.com' is therefore not allowed access.
我做了一些研究,发现问题与我引用/_ah/channel/jsapi
的方式有关,但我找不到如何修复它。我尝试了以下方法来引用channel.js,但我仍然得到同样的错误。
<!-- Following doesn't work -->
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
<!-- Following doesn't work either -->
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
如果我在dev_appserver.py上运行该网站,它似乎工作正常。我错过了什么吗?
源代码位于https://github.com/rillomas/xclamm-gae,我正在使用Google App Engine SDK 1.8.4 for Go(x64 Windows)。
答案 0 :(得分:1)
我将<script type="text/javascript" src="/_ah/channel/jsapi"></script>
标记从main-stage.html
(内部网络组件的html)移动到index.html
(网站的根html),并且CORS错误消失了。
<script>
标记最初放在<polymer-element>
标记内,并且(可能)由Polymer.dart转换为XMLHttpRequest,导致错误。