Qooxdoo REST JSON请求问题 - 意外令牌然后超时

时间:2010-05-24 11:35:56

标签: django json rest qooxdoo

我正在学习Qooxdoo框架,我正在尝试使用一个小的Django Web服务。 Django webservice只返回这样的JSON数据:

{ "name": "Football", "description": "The most popular sport." }

然后我使用以下代码查询该url:

var req = new qx.io.remote.Request(url, "GET", "application/json");
req.toggleCrossDomain();

req.addListener("completed", function(e) {
                 alert(e.getContent());
                    });
req.send();

不幸的是,当我执行代码时,我得到意外的令牌错误,然后请求超时。

Uncaught SyntaxError: Unexpected token :
Native.js:91013011 qx.io.remote.RequestQueue[246]: Timeout: transport 248
Native.js:91013011 qx.io.remote.RequestQueue[246]: 5036ms > 5000ms
Native.js:91013013 qx.io.remote.Exchange[248]: Timeout: implementation 249

JSLint报告这是一个有效的JSON,所以我想知道为什么Qooxdoo没有正确解析它。

2 个答案:

答案 0 :(得分:5)

问题可能在于这一行:

req.toggleCrossDomain();

默认情况下,crossDomain为false,因此toggleCrossDomain将其设置为true。这迫使qx.io.remote.Request使用脚本传输,它不像普通的XMLHttpRequest那样工作:请求需要包含一个id,而服务器的响应必须使用相同的id并在调用中包装实际的响应到qx.io.remote.transport.Script._requestFinished()。这在qx.io.remote包的文档中有更详细的解释:

http://demo.qooxdoo.org/current/apiviewer/#qx.io.remote

答案 1 :(得分:0)

您的请求已超时。网址是对的吗?是否有连接到它的防火墙问题?基本上,您的代码没有收到您期望的JSON,而是收到超时错误。