使用googleappengine的channelapi和开发时的JavaScript错误

2024-05-16 20:04:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个使用channelapi的Python GAE应用程序,除了在使用开发服务器时在Firefox错误控制台中遇到非致命的浏览器错误外,一切都很正常。对于每个channelapi应用程序,基本上都是一样的,所以我将展示我在示例channeltac-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

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

^{pr2}$

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

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

在这之后,channeltac-Toe的行为很糟糕(双方都想成为X播放器),尽管我的实际应用程序运行没有问题。在

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

(a)造成这些问题的原因是什么?虽然我的应用程序运行,但这些错误降低了我的信心。在

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

我也遇到过同样的问题,但后续的跟进没有帮助。在

我的配置:Windows 7、Firefox 10.0.2(禁用加载项)、GAE 1.6.2


Tags: dev应用程序localhosthttpsource错误channelerror
2条回答

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

FWIW,该问题似乎是由于channelapi的内部轮询机制没有从包含内容类型的服务器接收响应引起的。因此,Firefox似乎将响应的内容类型默认为text/xml。在

当Firefox试图生成XMLHttpRequest.responseXML属性[1]时,可能会抛出“找不到元素”错误,因为响应主体实际上是空的,因此找不到根XML元素。在

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

相关问题 更多 >