一个简单的AJAX
JS脚本:
//页面调用方法 function getInfo(obj){ var ajax=getAjaxObject(); url="ajaxAction.do?method=ajaxCheck"; ajax.onreadystatechange =function(){ var buffer=""; if (ajax.readyState == 4&&ajax.status == 200){ buffer=ajax.responseText; //*回调调用方法 ajaxCallback(buffer); } } ajax.open("POST",url); ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); ajax.send("para="+obj); } //*get Ajax Object function getAjaxObject(){ if (window.ActiveXObject) { try{ ajax = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ alert("创建Microsoft.XMLHTTP对象失败,AJAX不能正常运行.请检查您的浏览器设置."); } } else { if (window.XMLHttpRequest) { try{ ajax = new XMLHttpRequest(); }catch(e){ alert("创建XMLHttpRequest对象失败,AJAX不能正常运行.请检查您的浏览器设置."); } } } return ajax; }
struts1.x action:
public ActionForward ajaxCheck(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
PrintWriter writer;
response.setContentType("text/plain;charset=GBK");
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
boolean enable=false;
try{
writer=response.getWriter();
AjaxService ajax=new AjaxService ();
String para=request.getParameter("para");
enable = ajax.checkSomething(para);
} catch (Exception e) {
log.error(e.getMessage());
return mapping.findForward("exception");
}
writer.print(enable);
writer.close();
return null;
}
备注:
如果需要向页面返回一个JS对象,可以在java中拼装一个对象字符串({name:'jack',sex:'m'}),在前台得到这个字符串后将其转换成一个JS对象(var obj=null; eval("obj="+outputString); return obj;)。