0

WebAppにAJAXクエリを送信しているときに、サーバーがヘッダー付きの応答を返すと、Qooxdooは応答を正しく解釈できません。

コンテンツタイプ:application / json; charset = utf-8

サンプルコードは次のとおりです。

var req = new qx.io.remote.Request( "http:// localhost:8080 / bm / login.json"、 "POST"、 "application / json");
req.setFormField('login'、this.loginInput.getValue());
req.setFormField('password'、this.passwordInput.getValue());

req.addListener( "completed"、function(response){
    var result = response.getContent();
    alert(結果); //期待される:オブジェクト
    alert(result.status); //予想:200
}、 これ);

req.send();

この場合、alert(result)はnullを返します(オブジェクトである必要があります)。

Qooxdooアプリとサーバーアプリはhttp:// localhost:8080/で実行されます

mime-typeヘッダーを次のように変更した場合:

コンテンツタイプ:text / html; charset = utf-8

すべてが正しく機能します。

JSONViewという名前のFirefoxの追加に追加すると、alert(result); 私に戻ります:

<doctype html = "">
  <div id = "json">
    <ul class = "objcollapsible">
      <li>
        <span class = "prop"> session_id </ span>
        :
        <span class = "string"> "e4cfcd8e91c567cce3767375dd3fd9d" </ span>
      </ li>
      <li>
        <spanclass="prop">ステータス</span>
        :
        <span class = "num"> 200 </ span>
      </ li>
    </ ul>
  </ div>
</ doctype>

ただし、サーバーの応答は次のとおりです。

{"session_id": "31446a34db6961a8d67e4e47c96cfb4"、 "status":200}

したがって、Qooxdooは、サーバーから返された純粋なコードではなく、Firefoxによって変更された応答を使用すると思います。jQueryのようなフレームワークでは、これまで問題はありませんでした。

これに対する解決策はありますか、それともjQueryフレームワークを追加してjQuery ajaxリクエストを使用する必要がありますか?

LinuxではQooxdoo1.2.1とfirefox3.6.12があります。

4

1 に答える 1

0

すでに述べたように、POST から GET への切り替えが解決策です。

さらに、このsetFormFieldメソッドは内部的に IframeTransport 実装に切り替えます。したがって、AJAX トランスポートを使用する場合は、setParameter既に行っているように、この方法に固執する必要があります。

于 2010-12-13T14:01:38.360 に答える