2017-12-05 2 views
-1

Ich habe versucht, json Daten an meine Serlvlet zu senden. Aber wenn ich versuche, das zu erhalten, habe ich null. Unten ist mein Code. Wo liege ich falsch? Ich verstehe nicht.nicht möglich, Json zu Servlet Post-Methode zu empfangen

index.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> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
function test(){ 
    var dataa={ 
      "otp":"abc", 
      "email":"abcabc" 
     }; 
    $.ajax({ 
     url: "AbcTest", 
     type: 'POST', 
     dataType: 'json', 
     data: 
     { dataa: JSON.stringify(dataa) 
      }, 
     contentType:'application/json; charset=utf-8', 
     success: function (response) { 
      console.log(JSON.stringify(response)); 
     }, 
     error: function(xhr, resp, text) { 
      alert("error"); 
      console.log(xhr, resp, text); 
     } 
    }); 
} 
</script> 
</head> 
<body> 
<button onclick="test();">Submit</button> 
</body> 
</html> 

AbcTest Servlets

package org.abc.ussd; 

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
@WebServlet("/AbcTest") 
public class AbcTest extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    public AbcTest() { 
     super(); 
    } 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     System.out.println(request.getParameter("dataa")); 
    } 
} 

Ich erhalte null in dataa in servlet. Wie kann ich JSON-Daten von der JSP-Seite an dieses Servlet erhalten?

+0

Haben Sie versucht, das Debuggen bekam ändern (die Front-End über Browser-Debugger, Netzwerkmonitor, das Back-End via IDE-Debugger), um das Problem einzugrenzen? Wenn nicht, bitte tun und teilen Sie die Schlussfolgerungen. – kryger

+0

gut, im Browser habe ich keinen Fehler in der Entwickler-Tools-Konsole in Chrom. und im Servlet bekomme ich null gedruckt. – JPG

Antwort

1

konnte ich dieses Problem beheben, wenn ich den Inhaltstyp

contentType: "application/x-www-form-urlencoded; charset=UTF-8;", 

I unten Ausgabe in Konsole

enter image description here

+1

ja! es hat mein Problem gelöst. Vielen Dank: D – JPG

Verwandte Themen