5

我正在编写一个使用 Channel API 的 Python GAE 应用程序,除了在使用开发服务器时在 Firefox 错误控制台中出现非致命浏览器错误之外,一切正常。每个 Channel API 应用程序基本上都是一样的,所以我将展示我在示例 Channel Tac Toe 应用程序中看到的内容。

它以语法错误开始,其中显示的源代码始终只是数字“1”:

Error: syntax error
Source File: http://localhost:8080/_ah/channel/dev?command=connect&channel=channel-2053758219-1329727351-185804764220139124118185804764220139124118
Line: 1, Column: 1
Source Code:1

接下来是“格式不正确”的错误(仅在 Channel Tac Toe 中):

Error: not well-formed
Source File: http://localhost:8080/_ah/channel/dev?command=poll&channel=channel-2053758219-1329727351-185804764220139124118185804764220139124118&client=1
Line: 1, Column: 1
Source Code:{"winner": null, "userX": "185804764220139124118", "moveX": true, "winningBoard": null, "board": "         ", "userO": ""}

然后我得到一连串无休止的“找不到元素”错误,大约每秒三个:

Error: no element found
Source File: http://localhost:8080/_ah/channel/dev?command=poll&channel=channel-2053758219-1329727351-185804764220139124118185804764220139124118&client=1
Line: 1

此后,尽管我的实际应用程序运行没有问题,但 Channel Tac Toe 表现不佳(双方都想成为 X 播放器)。

请注意,因为这些都是 JavaScript 错误,所以没有堆栈跟踪。

(a) 是什么导致了这些问题?尽管我的应用程序可以运行,但这些错误降低了我的信心。

(b) 无穷无尽的“未找到元素”消息是一个真正的问题,因为它们使得很难看到其他 JavaScript 错误。

我遇到过同样问题的另一份报告,但后续行动无济于事。

我的配置:Windows 7、Firefox 10.0.2(禁用附加组件)、GAE 1.6.2

4

2 回答 2

1

FWIW,该问题似乎是由 Channel API 的内部轮询机制未从服务器接收包含 Content-type 的响应引起的。结果,Firefox 似乎默认响应的内容类型为text/xml.

当 Firefox 尝试生成 XMLHttpRequest.responseXML属性 [1] 时,可能会抛出“未找到元素”错误——因为响应正文实际上是空白的,因此没有找到根 XML 元素。

[1] https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#responseXML

于 2014-08-21T17:31:23.460 回答
-1

这看起来像是 SDK 中的一个错误。您可以在此处报告错误:http ://code.google.com/p/googleappengine/issues/entry

于 2012-05-09T22:58:04.713 回答