簡體   English   中英

從Servlet解析jQuery中的jsonarray時出錯?

[英]Error in parsing jsonarray in jquery from Servlet?

我正在嘗試在我的jquery函數中讀取jsonarray。 發生了一些奇怪的事情。 而不是在我的成功函數中顯示數據,而是在我的錯誤函數內部接收數據。 對於它為什么以這種方式表現,我完全一無所知。 誰能指導我一點。 我正在error.responseText中獲取數據。 真奇怪

HomeServlet.java

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        JSONObject job=new JSONObject(); //create a JSON Object obj.
        JSONArray jArray = new JSONArray();
          String text = "some text";
         PrintWriter out = response.getWriter();
         response.setContentType("text/html");
         try {
           Class.forName("com.mysql.jdbc.Driver");
            Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost/apiprovider","root","");
             Statement stmt = con.createStatement();
             ResultSet rs = stmt.executeQuery("select * from apiinfo");
            // out.println("<table border=1 width=50% height=50%>");
            // out.println("<tr><th>EmpId</th><th>EmpName</th><th>Salary</th><tr>");
             while (rs.next()) {
                 String n = rs.getString("apiname");
                 String nm = rs.getString("apiendpoint");

                 job.put("value1", n);
                 job.put("value2", nm);
                 jArray.put(job); 







                response.setContentType("application/json");
               response.setCharacterEncoding("UTF-8");
               response.getWriter().write(jArray.toString());


             }

             con.close();

            }
             catch (Exception e) {
          System.out.println(e.getMessage());
             }
     }

回到Home.jsp

<%@ 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>
<style>
.vertical-menu {
    width: 200px;
}

.vertical-menu a {
    background-color: #eee;
    color: black;
    display: block;
    padding: 12px;
    text-decoration: none;
}

.vertical-menu a:hover {
    background-color: #ccc;
}

.vertical-menu a.active {
    background-color: #4CAF50;
    color: white;
}
</style>
</head>
<body>

<form>
<div class="vertical-menu">

</div>
 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...
    //event.preventDefault();
    $.ajax({
        type: "GET",
        url: "HomeServlet",
        success: function(data) {
            console.log("Entered");
            $.each(data, function(key, value) {
              console.log(value.value1); //alerting the values set in the JSONObject of the Sevlet.
              console.log(value.value2);
            })


          },
          error: function(error) { 
              console.log("Entered err",error.responseText);
          },
       //dataType: "json",
       contentType : "application/json"
    });
    return false;
});
</script>
</body>
</html>
String n = rs.getString("apiname");
String nm = rs.getString("apiendpoint");
     Add data to jsonArray
    JSONArray jArray = new JSONArray();
    jArray.add(n);
    jArray.add(nm);
    Put jArray to Json Object
    JSONObject job=new JSONObject();
    job.put("Key",jArray);
    Return JsonObject to response
    return job.toString();

    Try this see if it's Working......this is the way i do, may be it will help you

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM