我在我的示例项目中使用jquery处理JSP和ajax。我正在从客户端向服务器发送json数据,作为响应,我从服务器获取另一个json。如果我使用' get'方法。如果我使用' post'然后我得到500内部服务器错误。 我的示例客户端代码是
jQuery.ajax({
url : "server.jsp",
type : "POST",
data:{req_data:JSON.stringify({"user_name":UserName,"url":URL})},
async : false,
dataType: 'json',
contentType : "application/json; charset=utf-8",
success : function(data) {
console.log(data);
},
error : function() {
console.log("error");
}
我的示例jsp服务器端代码是
<%@ page import="java.io.PrintWriter"%>
<%@ page import="org.json.simple.JSONObject"%>
<%@ page import="org.json.simple.JSONValue"%>
request.setCharacterEncoding("utf8");
response.setContentType("application/json");
PrintWriter outt = response.getWriter();
JSONObject reqjsonObj = (JSONObject)JSONValue.parse(request.getParameter("req_data"));
String uname=reqjsonObj.get("user_name").toString();
String url=reqjsonObj.get("url").toString();
JSONObject resjsonObj = new JSONObject();
resjsonObj.put("name",uname);
resjsonObj.put("url",url);
out.print(resjsonObj);
out.flush();
out.close();
如果我使用&#39; GET&#39;而不是&#39; POST&#39;在ajax请求中。我在这里可能犯的错误是什么?
答案 0 :(得分:0)
尝试检查网址:
url : "server.jsp",
也许出于某种原因,GET能够找到jsp。出于测试目的,尝试声明所有URL,例如:
url : "http://localhost:8080/server.jsp"...
答案 1 :(得分:0)
因为您正在请求正文中发送json。您无法在请求中使用getParameter()
来获取json。
相反,您可以使用getReader()
或getInputStream()
来检索请求的正文,然后为json解析它。
另一种方法是使用嵌入式json序列化的参数。在这种情况下,您可以使用getParameter()
。如何序列化数据,请参阅$.serialize()。