Java 为什么firebug中的响应和JSON选项卡不同

Java 为什么firebug中的响应和JSON选项卡不同,java,ajax,json,servlets,gson,Java,Ajax,Json,Servlets,Gson,我的Servlet public class JSONServlet extends HttpServlet { private static Gson gson = new Gson(); public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("application/jso

我的Servlet


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})

这是firebug响应选项卡中的结果


{"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

function(data){ //But in callback method //data.sessionID is always 3788474425691603000 //and never changes. //But sessionID in firebug Response tab changes //ever login.login(...) call and it is true one } 功能(数据){ //但在回调方法中 //data.sessionID始终为3788474425691603000 //永不改变。 //但是firebug响应选项卡中的sessionID发生了变化 //曾经登录。登录(…)调用,它是真实的 } 我做错了什么。为什么我总是得到相同的sessionID

JavaScript在内部使用双精度(64位浮点)来表示数值,因此大数值的精度有限,并且会出现舍入。我用AJAX/JSON的东西遇到了这个问题,解决方案是将会话id作为字符串而不是数字发送(“sessionID”:3788474425691603010 vs.“sessionID”:“3788474425691603010”)