<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> var xmlHttp = false; function doIt(){ sendRequest("GET","/system/ajax.action",true,callback); } function sendRequest(method, url, async, callback) { if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } if (!xmlHttp) { alert("当前浏览器无法创建XMLHttpRequest对象"); } else { //初始化XMLHttpRequest对象 xmlHttp.open(method, url, async); //定义一个回调函数 xmlHttp.onreadystatechange = callback; //发送 xmlHttp.send(); } } function callback(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var str = xmlHttp.responseText; //alert(str); var obj = eval("(" + str + ")"); alert(obj.name + " : " + obj.age); } } </script> </head> <body> <button id="b" onclick="doIt()">获得JSON对象</button> </body> </html>
public void ajax(){ try { String s = "{\"name\":\"张三\",\"age\":\"20\"}"; ServletActionContext.getResponse().setCharacterEncoding("UTF-8"); ServletActionContext.getResponse().getWriter().print(s); } catch (IOException e) { e.printStackTrace(); } }
属性 | 描述 |
---|---|
onreadystatechange | 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 |
readyState | 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
|
status | 200: "OK" 404: 未找到页面 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="js/Jquery1.7.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $('#Button1').click(function () { var username = $('#txtUserName').val(); var pwd = $('#txtPwd').val(); $.ajax({ type: "post", contentType: "application/json", url: "WebService1.asmx/Login", data: "{username:'" + username + "',pwd:'" + pwd + "'}", success: function (bukeyi) { if (bukeyi.d == 'true') { window.location = 'HTMLPage1.htm'; } else { $('#divinfo').text("用户名或密码错误"); } } }) }) }) </script> </head> <body> 用户名<input id="txtUserName" type="text" /><br /> 密码<input id="txtPwd" type="text" /><br /> <input id="Button1" type="button" value="登录" /><br /> <div id="divinfo"></div> </body> </html>
----------------------------------------------------------
<script type="text/javascript"> var xmlHttp = false; function qiangda(ipaddress){ //alert(ipaddress); sendRequest("GET","qiangda.action?ip="+ipaddress,true,callback); } function sendRequest(method, url, async, callback) { if (window.XMLHttpRequest) { //基于Mozilla的浏览器,直接创建XMLHttpRequest对象 xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) {//IE浏览器 //xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE浏览器中XMLHTTP的实现版本并不相同 var msxmls = ["MSXML3" , "MSXML2" , "Microsoft"]; for(var i=0; i < msxmls.length; i++) { try { xmlHttp = new ActiveXObject(msxmls[i]+".XMLHTTP"); } catch(e) { alert("您的浏览器不支持XMLHTTP控件"); } } } if (!xmlHttp) { alert("当前浏览器无法创建XMLHttpRequest对象"); } else { //初始化XMLHttpRequest对象 xmlHttp.open(method, url, async); //定义一个回调函数 xmlHttp.onreadystatechange = callback; //发送 xmlHttp.send(); } } function callback(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var str = xmlHttp.responseText; //alert(str); var obj = eval("(" + str + ")"); //Dialog.alert(obj.name + " : " + obj.age); alert(obj.name + " : " + obj.age); } } </script>