我的servlet端点返回json,但我的axios函数没有运行并为我的网页获取它

41ik7eoe  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(302)

我有一个简单的html表单

<form action="#" method="get" id="thisForm">
       <button type="submit"> GetJSON </button>
</form>

这是我的javascript在我的body标签的末尾部分

<script src="https://unpkg.com/axios/dist/axios.min.js">

let form = document.getElementById("thisForm");
form.addEventListener('submit', servletAccess())

function servletAccess(e){
    e.preventDefault();
    console.log("im here")

    axios.get('http://localhost:8080/Project1/MyServlet')
    .then(function (response) {
      // handle success
      console.log(response);
    })
    .catch(function (error) {
      // handle error
      console.log(error);
    })
    .then(function () {
      console.log(response);
    });
}

</script>

这是我的Javaservlet返回json

JSONArray json = new JSONArray();

    JSONObject user = new JSONObject();
    user.put("name", "rous");
    user.put("age", 26);
    user.put("lname", "e");

    JSONObject user2 = new JSONObject();
    user.put("name", "rene");
    user.put("age", 28);
    user.put("lname", "solomon");

    json.put(user);
    json.put(user2);

    response.setContentType("application/json");
    response.getWriter().write(json.toString());

当通过url直接到达我的端点时,我得到了原始数据
[{“lname”:“solomon”,“name”:“rene”,“age”:28},{}]
所以我知道我的端点是有效的。
为什么我连console.log都做不到?我的虚拟控制台.log(“im here”)甚至没有运行?
这可能很简单,但我坚持下去。

7tofc5zh

7tofc5zh1#

您的脚本标记指定了'src'和内联javascript,当您这样编写时,您的内联js将被忽略,因此您必须分离这些脚本标记:

<script src='path/to/axios/'></script>
<script>
// register your form handler
</script>

还有这条线:

form.addEventListener('submit', servletAccess())

您将实际的函数调用注册为事件侦听器,它应该是函数本身,如下所示:

// notice no () at the end of function name
form.addEventListener('submit', servletAccess)

相关问题