AJAX中XMLHttpRequest的简单应用

本文通过一个简单的示例介绍了如何使用Ajax发起GET请求来从服务器获取信息,并展示了不同浏览器下创建XMLHttpRequest对象的方法及处理响应的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本文例子参考了Ajax修炼之道中的例子,只为说明问题,如引用,请注明程序出处)

从客户端建立一个XMLHttpRequest对象,然后用这个对象请求一个URL。本文使用的URL是”/MyTest/message“,如下是整个页面的代码。功能很简单,在页面上有一个按钮,单击按钮后可以从服务器获取一个信息(URL,即本文的/MyTest/message),然后可以从对象xhr.responseText获得这个值(注意:这里不同的浏览器有不同的做法。如:IE中xhr的属性可以是responseTEXT也可以是responseText。但在Firefox中则只能使用后者)。另外如下列代码可知,在不同的浏览器中,创建XMLHttpRequest对象的方法也有所不同。程序中只给出了主流的浏览器IE和Firefox中创建的情况,其他的浏览器没有提供,可能会出现问题。
用户页面:
<
html>
<head>
<title>Your title here</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name = "GENERATOR" Content = "ScrypTik V1.13">
<script type = "text/javascript" language = "Javascript">
<!-- Hide from older browsers;
var xhr ;
function modify(){
  
try{
    xhr 
= new ActiveXObject("Msxm12.XMLHTTP");
  }
catch(E){
    
try{
      xhr 
= new ActiveXObject("Microsoft.XMLHTTP");
    }
catch(e){
      xhr 
= false ;
    }

  }

  
if(!xhr && typeof(XMLHttpRequest)!='undefined'){
    xhr 
= new XMLHttpRequest();
    alert(
"Firefox");
  }


  xhr.open(
"GET" , "/MyTest/message");
  xhr.onreadystatechange
=function(){
    
if(xhr.readyState!=4)return ;
    document.getElementById(
"message").innerHTML =xhr.responseText;
  }

  xhr.send(
null);
}

// end hide -->
</script>
</head>
<body>
<!-- Insert HTML here -->
<div id="message"></div>
<button onclick="modify()">Click Here</button>
</body>
</html>

服务器处理:
使用Servlet技术,如下是Servlet代码:


import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class message extends HttpServlet {
    
private static final String CONTENT_TYPE = "text/html; charset=GBK";

    
//Initialize global variables
    public void init() throws ServletException {
    }


    
//Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException 
{
        response.setContentType(CONTENT_TYPE);
        PrintWriter out 
= response.getWriter();
        out.println(
"<html>");
        out.println(
"<head><title>message</title></head>");
        out.println(
"<body bgcolor="#ffffff">");
        out.println(
"<p>The servlet has received a GET. This is the reply.</p>");
        out.println(
"</body>");
        out.println(
"</html>");
        out.close();
    }


    
//Clean up resources
    public void destroy() {
    }

}

请读者注意路径问题,我使用的Servlet是放在了虚拟路径的ROOT目录(如:http;//localhost;8080/MyTest/message)。如果您创建的Servlet不在ROOT下,那么自行更改xhr.open()方法中的路径。
如执行正确,那么在按钮的上边会出现“
The servlet has received a GET. This is the reply.”字符串。

我刚刚接触AJAX,很多地方不明白。不当之处,请各位高手指正。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值