1

我目前正在尝试使用 Google App Engine/Go + Polymer.dart 网站http://xclamm.appspot.com/

问题是当我使用 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)。

4

1 回答 1

1

我将<script type="text/javascript" src="/_ah/channel/jsapi"></script>标签从main-stage.html(用于内部 Web 组件的 html)移至index.html(用于网站的根 html),CORS 错误消失了。

<script>标签最初放置在<polymer-element>标签内,并且(可能)被 Polymer.dart 转换为 XMLHttpRequest,从而导致错误。

于 2013-09-18T13:25:24.943 回答