将json对象从jsp发送到servlet

时间:2017-03-07 16:59:29

标签: java jquery json jsp servlets

我想以json的形式从jsp向servlet发送名称和密码,但这不起作用。 可能是什么问题?

这是我的片段。



function submitForm(thisObj, thisEvent) {
  var name = $('#name').val();
  var password = $('#password').val();

  var myData = {
    "mydata": {
      "name": name,
      "password": password
    }
  };
  $.ajax({
    type: "GET",
    url: "/Aasd",
    data: {
      jsonData: JSON.stringify(myData)
    },
    dataType: "json"
  });
  return false;
}

<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js”>
</script>


<body>
  <h2>Login</h2>
  <form enctype='application/json'>
    Name:<input type="text" value="name" id="name"><br> Password:
    <input type="password" id="password"><br>
    <input type="submit" name="submit" onclick=" return submitForm(this,event)">
  </form>
</body>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

问题是你正在使用GET方法。您需要使用POST将数据“发布”到服务器。

POST用于发送数据,GET用于检索数据

  

GET请求只应用于检索数据

https://www.w3schools.com/tags/ref_httpmethods.asp

此外,就安全性而言,通过GET参数发送数据是一种不好的做法(特别是当使用ajax登录时,已经不是很安全)。

$.ajax({
     type:"POST",
     url:"/Aasd",
     data: myData,
     dataType:"json"
 });

在您的servlet中,您将能够使用doPost()方法检索请求。

https://stackoverflow.com/a/2349741/5758328

答案 1 :(得分:0)

将请求类型从GET更正为POST。

$。AJAX({             类型:的 “POST”

在servlet方面,从doPost()方法可以调用doGet()方法来使用你可能为GET类型调用配置的相同实现。

答案 2 :(得分:-2)

$.ajax({
            type:"GET",
            url:"/Aasd",
            data:{jsonData:JSON.stringify(myData)},
            dataType:"json"
        });
        return false;

更改

$.ajax({
            type:"POST",
            url:"/Aasd",
            data:{jsonData:JSON.stringify(myData)},
            dataType:"json"
        });
        return false;