猿问

获取 Channel API 客户端脚本时出现 CORS 相关错误

我目前正在尝试使用 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)。


达令说
浏览 206回答 1
1回答

莫回无

我将<script type="text/javascript" src="/_ah/channel/jsapi"></script>标签从main-stage.html(内部 Web 组件的index.htmlhtml&nbsp;)移动到(网站的根 html),然后 CORS 错误消失了。该<script>标签最初被放置在一个<polymer-element>标签内,并且(可能)被 Polymer.dart 转换为 XMLHttpRequest,从而导致错误。
随时随地看视频慕课网APP

相关分类

Go
我要回答