qooxdoo中的JSON对象问题

时间:2010-12-11 13:47:46

标签: json qooxdoo

当我向我的webApp发送AJAX查询时,当服务器返回带标题的响应时,Qooxdoo无法正确解释响应:

Content-Type: 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(result); // expected: object
    alert(result.status); // expected: 200
}, this);

req.send();

在这种情况下,alert(result)返回null(应该是对象)。

Qooxdoo应用和服务器应用在http://localhost:8080/

上运行

如果我将mime-type标题更改为:

Content-Type: text/html; charset=utf-8

一切正常。

当我添加名为JSONView的firefox时,然后提醒(结果);回到我身边:

<doctype html="">
  <div id="json">
    <ul class="obj collapsible">
      <li>
        <span class="prop">session_id</span>
        :
        <span class="string">"e4cfcd8e91c567cce3767375dd3fd9d"</span>
      </li>
      <li>
        <span class="prop">status</span>
        :
        <span class="num">200</span>
      </li>
    </ul>
  </div>
</doctype>

但服务器响应是:

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

所以,我认为Qooxdoo使用Firefox修改的响应,而不是从serwer返回的纯代码。在像jQuery这样的框架中,我从来没有遇到任何问题。

有没有解决方案,还是应该添加jQuery框架并使用jQuery ajax请求?

我有: Linux下的Qooxdoo 1.2.1和firefox 3.6.12。

1 个答案:

答案 0 :(得分:0)

正如您已经提到的,从POST切换到GET是解决方案。

此外,setFormField方法在内部切换到IframeTransport实现。因此,如果您想使用AJAX传输,您应该坚持使用setParameter方法 - 就像您已经做的那样。