问题描述
- servlet该如何返回值给AJAX呢?
-
js代码
//声明XMLHttpRequest对象
var xmlrequest;//初始化XMLHttpRequest
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlrequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){} } }
}
//定义回调函数
function processResponse(){
//响应完成
if(xmlrequest.readyState == 4){
//响应正常
if(xmlrequest.status == 200){
var head = xmlrequest.responseText;
alert(head);
}
}
}//事件处理函数
function change(){
//初始化XMLHttpRequest对象
createXMLHttpRequest();//设置请求的URI var uri = "servlet/LoginServlet"; //打开与服务器响应地址的连接 xmlrequest.open("POST", uri, true); //设置请求头 xmlrequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //设置处理响应的回调函数 xmlrequest.onreadystatechange = processResponse; var account = document.form.account.value; var password = document.form.password.value; //发送请求 xmlrequest.send("account=" + account + "&password=" + password);
}
servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("post被触发了");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");String account = request.getParameter("account"); String password = request.getParameter("password"); System.out.println(account); System.out.println(password); PrintWriter out = response.getWriter(); out.print("124578");
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>shangGou
LoginServlet
servlet.LoginServletLoginServlet
/servlet/LoginServlet请大神帮我解答解答,AJAX向服务器发送请求后,servlet要如何响应页面才不会刷新呢?
解决方案
response.setContentType(type + ";charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
PrintWriter writer = response.getWriter();
writer.write(content);
writer.flush();
解决方案二:
可以直接使用response.getOut()来write数据。ajax中success后function(value),value就是写出的内容。
解决方案三:
你用jquery的ajax,有个success回调,返回数据就会触发
解决方案四:
你用jquery的ajax,有个success回调,返回数据就会触发
解决方案五:
关注着问题的解决 ,,,具有借鉴意义啊
解决方案六:
你哪个控件触发的function change()事件,如果是放到表单中的submit按钮,要return false阻止表单的提交
<input type="submit" onclick="change();return false"....../>
解决方案七:
你的请求并没有走change() 方法,你加上日志试试。 表单会自动提交到action里,更新整个页面。 你可以阻止form的默认请求,或者 不用表单。
解决方案八:
http://blog.csdn.net/better_mouse/article/details/46046411
可以用 string xml json 返回
解决方案九:
http://blog.csdn.net/better_mouse/article/details/46046411
解决方案十:
是要问ajax如何接收呢,还是servlet如何转呢。