【发布时间】:2015-10-29 09:34:55
【问题描述】:
我正在尝试使用 jquery 向 Servlet 发出 ajax 请求的简单程序
var searchObject = new Object();
searchObject.search1='abc';
searchObject.search2='xyz';
console.log(JSON.stringify(searchObject));
$.ajax({
url: "SearchServlet",
type: 'post',
data: {data:JSON.stringify(searchObject)},
contentType: 'application/json',
mimeType: 'application/json',
success: function (data) {
console.log("Posted!!");
}
});
以下是登录控制台的内容。
{"search1":"abc","search2":"xyz"}
在 SearchServlet 下面是方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameterMap());
Enumeration<String> names = request.getParameterNames();
System.out.println(names.hasMoreElements());
while(names.hasMoreElements()){
System.out.println(request.getParameter(names.nextElement()));
}
}
打印出来的
{}
false
当ajax请求中指定的contentType为'application/json'
和打印
{data=[Ljava.lang.String;@7eedec92}
true
{"search1":"abc","search2":"xyz"}
当 contentType 从 jquery ajax 请求代码中被注释掉时。
我想了解
- 为什么当 contentType 为 应用程序/json ?
- 如何在请求时访问参数 contentType 是 application/json。
【问题讨论】:
-
查看这个答案。可能是重复的stackoverflow.com/questions/3831680/…
-
谢谢。那篇文章似乎回答了我的问题。将在几分钟内尝试并关闭此问题
-
这回答了我的问题 pdem。我不确定是否保留或删除此问题。
-
保留它,它可能对索引有用。有人可能会问同样的问题
-
你可以回答这个问题,我可以接受吗?快速浏览一下,这个问题似乎没有答案
标签: java jquery json ajax servlets