htmhtml:
<!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="Scripts/jquery-1.9.1.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> function Button1_onclick() { //创建一个浏览器通用的XMLHTTPRequest对象 var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) { alert("Error initializing XMLHttpRequest!"); } // else { // alert("OK"); // } var amount = document.getElementById("Text1").value; var moneytype = document.getElementById("Select1").value; request.open("POST", "huilv.ashx?amount="+amount+"&moneytype=" + moneytype+"&ts="+new Date(), true); //准备向服务器的GetDate1.ashx发送请求,最后&ts防止有缓存的,ajax一般不用缓存 //XMLHTTP默认(也推荐)不是同步请求的,也就是open方法并不像webClient的DownloadString那样把服务器返回的数据拿到才返回,是异步的,因此需要监听onreadystatechange事件 request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) {//如果状态是200表示成功 document.getElementById("Text2").value = request.responseText;//responseText属性为服务器返回的数据 } else { alert("Ajax服务器返回错误!"); } } } request.send();//这时才开始发送请求 } //使用jQuery版本ajax function Button2_onclick() { var amount = $("#Text1").val(); var moneytype = $("#Select1").val(); //通过jquery的post方法来调用ajax技术 //第一个参数是要访问的页面,第二个参数是传递的数据,第三个参数是匿名函数 $.post("huilv.ashx",{"amount":amount,"moneytype":moneytype}, function (data,textStatus) { if (textStatus = "success") { $("#Text2").val(data); } else { alert("ajax失败"); } }); } </script> </head> <body> <input type="text" id="Text1"/> <select id="Select1" name="D1"> <option value="1">美元</option> <option value="2">日元</option> <option value="3">港币</option> </select> <input type="button" id="Button1" value="计算" onclick="Button1_onclick()" /> <input type="button" id="Button2" value="jQuery版Ajax" onclick="Button2_onclick()" /> <input type="text" id="Text2"/> </body> </html>
ashx:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace AJax { /// <summary> /// huilv 的摘要说明 /// </summary> public class huilv : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //一个下拉列表(美元,日元,港币),一个按钮,点击按钮在一个span中显示转换后的金额,汇率计算在服务器端完成,假设汇率(人民币/外币):7 10 string amount = context.Request["amount"]; string moneytype = context.Request["moneytype"]; int iAmount = Convert.ToInt32(amount); if (moneytype == "1")//美元 { context.Response.Write(iAmount / 7); } else if (moneytype=="2") { context.Response.Write(iAmount * 10); } else if (moneytype=="3") { context.Response.Write(iAmount); } } public bool IsReusable { get { return false; } } } }