繁体   English   中英

XHR无法在Java中加载GET?

[英]XHR failed loading GET in Java?

这很奇怪,因为我试图从我的ajax获取servlet响应,并且第一次加载页面并触发请求时,我在控制台日志中获得了正确的响应,但是下一次,我尝试单击按钮以获取响应不断给我错误。

XHR failed loading: GET "http://localhost:8080/TestApplication/HomeServlet?format=json".
send @ jquery-3.2.1.min.js:4
ajax @ jquery-3.2.1.min.js:4
(anonymous) @ Home.jsp?apiname=&apiendpoint=&apiversion=&check=Check:33
dispatch @ jquery-3.2.1.min.js:3
q.handle @ jquery-3.2.1.min.js:3

这让我感到困惑,我想知道为什么我会收到如此奇怪的答复。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<div id="ajaxresponse">

</div>
<form>
 API Name:<br>
  <input type="text" id = "apiname" name="apiname">
   API ENDPOINT:<br>
  <input type="text" id ="apiendpoint" name="apiendpoint">
  <br>
  API VERSION:<br>
  <input type="text" id="apiversion" name="apiversion">
   ACCESSIBLE:<br>
  <input type="checkbox" name="source" value="internet"> Internet<br>
    <input type="checkbox" name="source" value="vpn"> VPN<br>
 <!-- 
  <br><br>
  <input type="submit" formaction="Home" method="post" value="Submit"> -->
  <br>
    <input type="submit" id="check" name="check" value="Check">

</form> 
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).on("click", "#check", function() { // When HTML DOM "click" event is invoked on element with ID "somebutton", execute the following function...
    $.ajax({
           url: 'HomeServlet',
           data: {
                  format: 'json'
               },
           error: function (request, status, error) {
                console.log(error);
            },
           success: function(data) {
               var $val1 = data.value1;
               var $val2 = data.value2;
              // $('#ajaxresponse').append('<p>'+$val1+'</p>');
            console.log(data.value1);
           },
            type: 'GET'
        });
});
</script>
</body>
</html>

可能有两种解决方案:

1)将输入按钮的类型从“ 提交”更改为“ 按钮”,然后重试,因为您也通过单击表单来提交表单,这可能会导致问题。

2)在按钮单击上尝试event.preventDefault()。

您可能希望通过将事件传递给匿名函数并调用event.preventDefault()来防止默认行为。 提交表单可能会更改页面的URL,这也会导致您的Ajax URL也不同,因为您将Servlet称为相对URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM