當我發送Ajax查詢到我的Web應用程序,的Qooxdoo不能正確地解釋響應時頭部服務器返回的響應:問題與的Qooxdoo JSON對象
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(應該是object)。
應用的Qooxdoo和服務器應用上http://localhost:8080/
運行。如果我改變MIME類型頭:
Content-Type: text/html; charset=utf-8
一切正常。
當我加入firefox添加名爲JSONView然後alert(result);返回到我:
<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。
我注意到,當我改變方法類型表單POST到GET並將表單參數設置爲URL與req.setParameter(...)一切都很好。 – tchudyk 2010-12-11 15:21:25