将变量从JavaScript发送到Java

将变量从JavaScript发送到Java,javascript,java,ajax,Javascript,Java,Ajax,我已经创建了一个使用JavaScript在浏览器上收集用户时间的游戏。我想做的是获取JavaScript数据并将其发送到后端,后端是用Java编写的(我使用的是运行在Tomcat上的本地服务器)。我怎样才能做到这一点 我已经研究过AJAX,下面是我想到的 var myTime = // however long it took for user to win game var data = {} data["myTime"] = my

我已经创建了一个使用JavaScript在浏览器上收集用户时间的游戏。我想做的是获取JavaScript数据并将其发送到后端,后端是用Java编写的(我使用的是运行在Tomcat上的本地服务器)。我怎样才能做到这一点

我已经研究过AJAX,下面是我想到的

          var myTime = // however long it took for user to win game

          var data = {}
          data["myTime"] = myTime;

          $.ajax({
              type : "POST",
              url : "/path-to/hosting/save",
              data : JSON.stringify(data),
              dataType : 'json',
              timeout : 100000,
              contentType:'application/json',
              success : function(data) {
                  console.log("SUCCESS: ", data);
              },
              error : function(e) {
                  console.log("ERROR: ", e);
              },
              done : function(e) {
                  console.log("DONE");
              }
          });
当我完成游戏时,我在控制台上收到以下错误: statusText:“parsererror”


我最初的想法是我没有正确地形成JSON,但我不确定。任何帮助都将不胜感激。提前谢谢

由于您的代码似乎myTime是一个单一值,所以您可以将其存储在数组中,如下所示

var myTime=//用户赢得游戏所需的时间

      //var data = {}
      //data["myTime"] = myTime;

      $.ajax({
          type : "POST",
          url : "/path-to/hosting/save",
          data : JSON.stringify({
            'myTime': myTime                
          }),
          dataType : 'json',
          timeout : 100000,
          contentType:'application/json',
          success : function(data) {
              console.log("SUCCESS: ", data);
          },
          error : function(e) {
              console.log("ERROR: ", e);
          },
          done : function(e) {
              console.log("DONE");
          }
      });

您在Java中使用什么数据类型来获取从Javascript发送的数据我一直在使用它作为参考:我创建了相同的路径来接收数据。我还创建了HostingForm类来包含我的变量myTime。谢谢Nisal。JavaScript给我的数据类型是一个“数字”。我尝试将后端的数据类型更改为“float”和“double”,但仍然存在解析错误。下面是响应:{“timestamp”:1509248487870,“status”:400,“error”:“错误请求”,“异常”:“org.springframework.web.bind.MissingServletRequestParameterException”,“消息”:“所需的双参数‘myTime’不存在”,“路径”:“/指向/hosting/save”的路径}我明白了。我们忘记为值添加一个键。但是,我现在在控制台中收到了这个错误:{readyState:4,getResponseHeader:ƒ,getAllResponseHeaders:ƒ,setRequestHeader:ƒ,overrideMemimetype:ƒ,…}根据上面的设置,这意味着ajax调用没有成功。关于这个问题,你还有什么其他的想法或建议吗?事实上,它现在起作用了。我写了一些System.print.out行,我能够获取数据。非常感谢。希望您随时都能解决服务器端的问题。