六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 156|回复: 0

JavaScript的Ajax请求示例

[复制链接]

升级  98%

11

主题

11

主题

11

主题

童生

Rank: 1

积分
49
 楼主| 发表于 2013-1-29 08:51:26 | 显示全部楼层 |阅读模式
以前利用Sencha,Dojo之类Web前端框架多了,由于它们都将Ajax请求封装好了,虽然用着方便,但是对于Js基本的Ajax请求却相当模糊,所以有必要做一下简要的Demo,以用来备忘。
Ajax请求示例1:
<html>  <head>    <title>Ajax示例</title>    <script  language="javascript" type="text/javascript">         //创建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!");         //获取信息         function getInfo() {             var url = "TheServlet.aspx?sid=" + Math.random() + "&q=juven";             request.open("GET", url, true);             request.onreadystatechange = updatePage;             request.send(null);         }         //更新页面         function updatePage() {             if (request.readyState == 4) {                 if (request.status == 200) {                     var response = request.responseText;                     document.getElementById("div1").innerText = response;                 }                 else if (request.status == 404) {                     alert("Requested URL is not found.");                 }                 else if (request.status == 403) {                     alert("Access denied.");                 }                 else alert("status is " + request.status);             }         }    </script></head><body> <input name="btn" type="button" id="btn" value="get...."  /><div id="div1"></div></body></html> 
对应的TheServlet.aspx代码如下:
<%@ Page Language="C#" %><!-- <%@ Import Namespace="System.Net" %>  --><script runat="server">    public void Page_Load(object sender, EventArgs e)    {        string astring = Request["q"];        string bstring = Request["sid"];        Response.Write("hey=="+bstring);    }</script> 示例2:
<html>  <head>  <script type="text/javascript">    var xmlHttp=null;     function showHint(str){   if (str.length==0){     document.getElementById("txtHint").innerHTML="";    return;   }   xmlHttp=GetXmlHttpObject()   if (xmlHttp==null){    alert ("您的浏览器不支持AJAX!");    return;   }var url="TheServlet";url=url+"?q="+str;url=url+"&sid="+Math.random();xmlHttp.onreadystatechange = stateChanged;xmlHttp.open("GET",url,true);xmlHttp.send(null);} function GetXmlHttpObject(){  var xmlHttp=null;  try    {    // Firefox, Opera 8.0+, Safari    xmlHttp=new XMLHttpRequest();    }  catch (e)    {    // Internet Explorer    try      {      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      }    catch (e)      {      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      }    }  return xmlHttp;}function stateChanged() {   if (xmlHttp.readyState==4){   document.getElementById("txtHint").innerHTML=xmlHttp.responseText;  }}       </script>   </head>  <body>     <form> First Name:<input type="text" id="txt1" onkeyup="showHint(this.value)" /></form><p>Suggestions: <span id="txtHint"></span></p>   </body></html> 对应的Servlet类代码如下:
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TheServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {  System.out.println("get into doGet  of TheServlet");    String aString = req.getParameter("q");  String bsString = req.getParameter("sid");    resp.getWriter().write(""+bsString);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("get into doPost  of TheServlet");}} 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表