【问题标题】:Why Response and JSON tab is different in firebug为什么 Response 和 JSON 选项卡在 firebug 中不同
【发布时间】:2011-06-17 02:40:46
【问题描述】:

我的小服务程序

public class JSONServlet extends HttpServlet { private static Gson gson = new Gson(); public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("application/json"); res.getWriter().write(gson.toJson(returnVal)); } }

我的登录功能

login.login=function(parm0){ $.post(login.url, { operation:'login', userID: 'admin', parmData0: JSON.stringify(parm0), parmType0: 'com.company.share.svc.login.data.LoginData' }, function(data){ loginHandler(data); }, 'json'); }

我如何调用我的登录功能
login.login({userID: 'admin', password: 'admin', forceOut: true});

这是萤火虫响应标签的结果


{"adminUserKey":{"userID":"admin"},"resultCode":0,"sessionID":3788474425691603010,"accountInfoData":[],"userID":"admin","successful":true}

这是 firebug 中 JSON 选项卡的结果


accountInfoData []
adminUserKey    Object { userID="admin"}
resultCode  0
sessionID 3788474425691603000
successful  true
userID   "admin"

如您所见,两个选项卡中的 sessionID 不同。在每个 login.login(...) 方法调用中,我都会获得一个新的会话 ID。

功能(数据){ //但是在回调方法中 //data.sessionID 始终为 3788474425691603000 //并且永远不会改变。 //但是firebug Response选项卡中的sessionID发生了变化 //曾经 login.login(...) 调用,它是真实的 }

我做错了什么。为什么我总是得到相同的 sessionID。

【问题讨论】:

    标签: java ajax json servlets gson


    【解决方案1】:

    JavaScript 在内部使用 Doubles(64 位浮点数)来表示数值,因此大数字的精度有限并且会发生舍入。我用 AJAX/JSON-stuff 解决了这个问题,解决方案是将会话 ID 作为字符串而不是数字发送(“sessionID”:3788474425691603010 与“sessionID”:“3788474425691603010”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      相关资源
      最近更新 更多