Qooxdoo REST JSON-запрос - неожиданный токен, а затем тайм-аут - PullRequest
1 голос
/ 24 мая 2010

Я изучаю фреймворк Qooxdoo и пытаюсь заставить его работать с небольшим веб-сервисом Django. Веб-сервис Django просто возвращает данные в формате 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 ]

5 голосов
/ 25 мая 2010

Проблема, вероятно, с этой строкой:

req.toggleCrossDomain ();

crossDomain по умолчанию равно false, поэтому toggleCrossDomain устанавливает его в значение true. Это заставляет qx.io.remote.Request использовать транспортный скрипт, который не работает как обычный XMLHttpRequest: запрос должен содержать идентификатор, в то время как ответ сервера должен использовать тот же идентификатор и обернуть фактический ответ в вызов в qx.io.remote.transport.Script._requestFinished (). Это объясняется более подробно в документации к пакету qx.io.remote:

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

0 голосов
/ 24 мая 2010

Ваш запрос истекает. Правильный ли URL? Есть ли проблемы с брандмауэром при подключении к нему? По сути, ваш код не получает ожидаемый JSON, а вместо этого получает ошибку тайм-аута.

...