1

私はQooxdooフレームワークを学んでおり、小さなDjangoWebサービスで動作させるようにしています。Django Webサービスは、次のような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が正しく解析しないのか疑問に思います。

4

2 に答える 2

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

于 2010-05-25T12:30:36.837 に答える
0

リクエストがタイムアウトになりました。URLは正しいですか?それに接続するファイアウォールの問題はありますか?基本的に、コードは期待するJSONを受信して​​いませんが、代わりにタイムアウトエラーを受信して​​います。

于 2010-05-24T11:39:51.903 に答える