前台js
$(document).ready(function(){
$("#test").click(function(){
var url = "function?method=echo";
var data = {
keyword_query: "Tim Berners-Lee"
};
$.ajax({
url: url,
type: "POST",
data: data,
// dataType: 'json',
contentType: "text/html",
success: function(referenceSet){
$("body").append("referenceSet: \n" + "<h3>" + (referenceSet) + "</h3>");
},
error: function(XMLHttpRequest, textStatus) {
$("body").append("textStatus: \n" + "<h3>" + textStatus + "</h3>");
}
});
});
});
后台java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
if(request.getParameter("method").equals("echo")) {
BufferedReader br = new BufferedReader(new InputStreamReader((ServletInputStream)request.getInputStream()));
String line = null;
StringBuilder sb = new StringBuilder();
while((line = br.readLine())!=null){
sb.append(line);
}
response.getWriter().print(sb);
}
}
红色字体部分
contentType: "text/html",
我一开始没有加上,这样后台的servlet用
request.getParameter(arg0)
可以得到数据,但是我想利用
request.getInputStream()
获得前台的全部数据就不可以了,即post的所有
后来上网查看了下,虽然没有我的相同的问题,但是有java的,jsp的类似的问题,原来是要设置
contentType: "text/html",
看来原理上还要多下功夫啊,调试了半天的代码,原来是因为这个。。。