我正在解决这个问题几个小时,但我找不到解决方案。我认为这只是一个语法错误。
在我的简单项目中,我只想将一个JSON字符串发送到Servlet,其中包含名称和文本。 servlet应该接受它,用org.json lib解析它并打印出名称和文本。之后将其发送回Java Script,也作为JSON String。
我尝试过在互联网上找到的多种语法版本,但没有一种方法是正确的。
以下是该项目的主要部分:
JS:
function sendMessage(event){
request = new XMLHttpRequest();
request.onreadystatechange = receivedData
var chat_text = document.getElementById("textarea_input").value;
request.open("GET", "AjaxChatServlet", true)
var jsonData;
jsonData = JSON.stringify({ username : loginname, text : chat_text});
request.setRequestHeader("Content-type", "application/json");
request.setRequestHeader("Content-length", jsonData.length);
request.send(jsonData)
document.getElementById("textarea_input").value = "";
}
的Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JSONObject jobj_username = null;
try {
jobj_username = new JSONObject(request.getParameter("username"));
} catch (JSONException e) {
// TODO Automatisch generierter Erfassungsblock
e.printStackTrace();
}
JSONObject jobj_text = null;
try {
jobj_username = new JSONObject(request.getParameter("text"));
} catch (JSONException e) {
// TODO Automatisch generierter Erfassungsblock
e.printStackTrace();
}
System.out.println("\n\n\nMessage send from:\n" + jobj_username + "\n\n" + "Message content:\n" + jobj_text);
PrintWriter writer = response.getWriter();
if(jobj_username != null && jobj_text != null){
//send JSON back to JavaScript
}else{
{writer.print("no Data available");}
}
}
希望有人可以帮助我。 感谢