后台代码是这样的:
public void searchTips() throws IOException{
System.out.println("接收到的content:"+content);
List<String>list=postingsService.getSearchTips(content);
for (String l : list) {
System.out.println("Tips:"+l);
}
System.out.print("json数据:");
HttpServletRequest request = ServletActionContext.getRequest();
    System.out.println("!!");
System.out.println(JSONArray.fromObject(list));
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
try {
PrintWriter writer = response.getWriter();

writer.print("111");
writer.flush();
        writer.close();
} catch (Exception e) {
e.printStackTrace();
} System.out.println("write关闭");

}
AJAX是这样的:
<script type="text/javascript">
var xmlHttp;
function getMoreContents() {
var content = document.getElementById("keyword");
if (content.value == "") {
clearContent();
return;
}
xmlHttp = createXMLHttp();
// alert("创建后:" + xmlHttp.readyState); if (xmlHttp == "") {
// alert("ajax创建失败");
} else {
// alert(xmlHttp);
} var url = "postings_searchTips?content=" + escape(content.value);
xmlHttp.onreadystatechange = callback;
xmlHttp.open("GET", url, true);
// alert("open后:" + xmlHttp.readyState);
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
// xmlHttp.send(null);
// alert("send后:" + xmlHttp.readyState);
}
function createXMLHttp() {
var xmlHttp = null;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
if (!xmlHttp) {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
}
return xmlHttp;
}
function callback() {
console.log(xmlHttp.responseText);
if (xmlHttp.readyState == 4) {
console.log(xmlHttp.responseText);
if (xmlHttp.status == 200) { var result = xmlHttp.responseText;
console.log("!!!");
console.log(eval("(" + result + ")"));
var json = eval("(" + result + ")");
setContent(json); }
}
}
function setContent(contents) {
clearContent();
setLocation();
var size = contents.length;
for (var i = 0; i < size; i++) {
var nextNode = contents[i];
var tr = document.createElement("tr");
var td = document.createElement("td");
td.setAttribute("border", "0");
td.setAttribute("bgcolor", "#FFFAFA");
td.onmouseover = function() {
this.className = 'mouseOver';
};
td.onmouseout = function() {
this.calssName = 'mouseOut';
};
td.onclick = function() { };
var text = document.createTextNode(nextNode);
td.appendChild(text);
tr.appendChild(td);
document.getElementById("content_table_body").appendChild(tr);
}
}
function clearContent() {
var contentTableBody = document.getElementById("content_table_body");
var size = contentTableBody.childNodes.length;
for (var i = size - 1; i >= 0; i--) {
contentTableBody.removeChild(contentTableBody.childNodes[i]);
}
document.getElementById("popDiv").style.border = "none";
}
function contentBlur() {
clearContent();
}
function setLocation() {
var content = document.getElementById("keyword");
var width = content.offsetWidth;
var left = content["offsetLeft"];
var top = content["offsetTop"] + content.offsetHeight;
var popDiv = document.getElementById("popDiv");
popDiv.style.border = "black 1px solid";
popDiv.style.left = left + "px";
popDiv.style.top = top + "px";
popDiv.style.width = width + "px";
document.getElementById("content_table").style.width = width + "px";
}
</script>
前台是这样的:
<input name="content" placeholder="搜索" type="text"
onkeyup="getMoreContents()" onblur="contentBlur()"
onfocus="getMoreContents()" class="search-input-text" id="keyword" />
<input type="submit" class="search-input-button" value="" />
<div id="popDiv">
<table id="content_table" bgcolor="#FFFAFA" border="0"
cellspacing="0" cellpadding="0">
<tbody id="content_table_body"> </tbody>
</table>
</div>
现在的情况是前台输入的数据可以传到后台,但是后台处理完后在response里面写,ajax的responseText接收不到。浏览器控制台打印responseText一直为空,readyState为0或1