`
zhangyuanjava
  • 浏览: 129597 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

XHR和firefox下写ajax

阅读更多
------------------------ajax1.html--------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
     <script type="text/javascript" src="jslib/verifyown.js"></script>
</head>
<body>

       用户名: <input type="text" id="userName" />
<input type="button" value="提交" onclick='verify()' />
<div id="result" ondblclick='hehe()'>aaa</div>
</body>
</html>
-----------------------verifyown.js----------------------------------
//用户名校验的方法
//这个方法将使用XMLHTTPRequest对象来进行AJAX的异步交互
   var xmlhttp;
function verify(){
    //1. 使用dom的方式获取文本框中的值
    //getElementById("userName")是dom中获取元素节点的一种方法,一个元素节点对应HTML页面中的一个标签,
    //如<input> 。value可以获取一个元素节点的value属性值
   var userName= document.getElementById("userName").value;
    //2.创建XMLHttprequest对象
    //这是XMLHttprequest对象使用中最复杂的一步
    //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码

    if(window.XMLHttpRequest) {
         //针对firefox, Mozillar,Opera,Safari,IE7,IE8
        xmlhttp=new XMLHttpRequest();
        //针对某些特定版本的mozillar浏览器的BUG进行修正
        if(xmlhttp.overrideMimeType)
        {
            xmlhttp.overrideMimeType("text/xml");
        }
    }   else if(window.ActiveXObject){
        //针对ie6,ie5,ie5.5
        //两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
        //排在前面的版本较新
        var activexName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for(var i=0;i<activexName.length;i++)
        {
            try{

                //取出一个控件名进行创建,如果创建成功就终止循环
                //如果创建失败,会抛出异常,然后可以继续循环,继续尝试创建
                  xmlhttp=new ActiveXObject(activexName[i]);
                break;
            }   catch(e){
               
            }
        }

    }
    //确认XMLHTTPRequest对象创建成功
          if(!xmlhttp){
              alert("XMLHttpRequest对象创建失败");
          } else{
            //  alert(xmlhttp.readyState);
          }
    //2.注册回调函数
    //注册回调函数时,只需要函数名,不要回括号
    //我们需要将函数名注册,如果加上括号,就会把函数的返回值注册上,这是错误的
    xmlhttp.onreadystatechange=callback;
         //3.设置连接信息
    //第一个参数表示http的请求方式,支持所有http的请求方式,主要使用get和post
    //第三个参数表示采用异步还是同步方式,true表示异步
    xmlhttp.open("GET","AJAXServer?name="+userName,true);
    //4.发送数据,开始 和服务器进行交互
    //同步方式下,send这句话会在服务器段数据回来后才执行完
    //异步方式下,send这句话会立即完成执行
    xmlhttp.send(null);
}
//回调函数
function callback(){
    alert(xmlhttp.readyState);
    //5.接收响应数据
    //判断对象的状态是交互完成
    if(xmlhttp.readyState==4){
        //判断http的交互是否成功
        if(xmlhttp.status==200){
            //获取服务器端返回的数据
            //获取服务器端输出的纯文本数据
            var responseText=xmlhttp.responseText;
                //将数据显示在页面上
            var divNode=document.getElementById("result");
            //设置元素节点中的html内容
            divNode.innerHTML=responseText;
        }

    }

}
-------------------------AJAXServer-------------------------------
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

/**
* Created by IntelliJ IDEA.
* User: ming
* Date: 2008-6-11
* Time: 11:11:34
* To change this template use File | Settings | File Templates.
*/
public class AJAXServer extends HttpServlet{
    protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        doGet(httpServletRequest, httpServletResponse);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
//            request.setCharacterEncoding("UTF-8");
//            response.setContentType("text/html;charset=gb18030");

            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();


            //1.取参数
            String old = request.getParameter("name");
            //String name = new String(old.getBytes("iso8859-1"),"UTF-8");
            String name = URLDecoder.decode(old,"UTF-8");
            //2.检查参数是否有问题
            if(old == null || old.length() == 0){
                out.println("用户名不能为空");
            } else{
//                String name = URLDecoder.decode(old,"UTF-8");
//                byte[] by = old.getBytes("ISO8859-1");
//                String name = new String(by,"utf-8");
//                String name = URLDecoder.decode(old,"utf-8");
                //3.校验操作
//                String name = old;
                if(name.equals("wangxingkui")){
                    //4。和传统应用不同之处。这一步需要将用户感兴趣的数据返回给页面段,而不是将一个新的页面发送给用户
                    //写法没有变化,本质发生了改变
                    out.println("用户名[" + name + "]已经存在,请使用其他用户名, ");
                } else{
                    out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " );
                      out.println("<br/>" );
                      out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " );
                }
            }
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}
分享到:
评论

相关推荐

    ajax 拖拉图片(同时适用IE,FIREFOX)

    在本案例中,我们讨论的主题是如何利用AJAX(异步JavaScript和XML)技术来实现在网页上对图片进行拖放操作,同时兼容IE和Firefox两种主流浏览器。 首先,我们需要了解AJAX的基本概念。AJAX是一种在不重新加载整个...

    ajax兼容IE,FF问题

    这篇博文主要探讨了如何解决Ajax在IE和Firefox上的兼容性问题。 首先,让我们了解一下Ajax的基本原理。Ajax的核心是XMLHttpRequest对象,它允许JavaScript在不刷新整个页面的情况下与服务器进行异步通信。在发送...

    简单介绍不用库(框架)自己写ajax

    现代浏览器(如IE7+、Firefox、Chrome、Safari、Opera)都内置了这个对象。而早期的IE浏览器,比如IE5和IE6,使用ActiveXObject来实现类似的功能。 为了创建一个兼容各浏览器的XMLHttpRequest对象,我们可以使用...

    ajax 实现等待页面

    首先,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是JavaScript的XMLHttpRequest对象,它允许JavaScript在后台与服务器交换数据并更新部分网页...

    解析xml,ajax

    但需要注意,E4X不是所有浏览器都支持,主要在Firefox中使用。 3. Ajax中的数据交换: - 使用XML:在早期的Ajax应用中,XML常作为数据交换格式,可以通过XMLHttpRequest的responseXML属性获取XML数据,然后使用DOM...

    AJAX的资料

    开发者工具如Chrome DevTools和Firefox Developer Tools提供了AJAX请求的调试功能,可以查看请求头、响应头、请求体和响应体等信息。 总的来说,AJAX通过提供异步数据交换的能力,极大地增强了Web应用程序的功能性...

    网络爬虫爬取Ajax

    browser = Watir::Browser.new :ie # 或者 :firefox, :chrome 等 browser.goto "http://ajax.example.com" # 模拟用户操作,例如点击按钮触发Ajax请求 button = browser.button(:id =&gt; 'load_data') button....

    ajax实例,兼容各个主流浏览器

    由于不同浏览器对XMLHttpRequest对象的支持程度不同,我们需要编写兼容代码来确保在所有主流浏览器(如IE、Firefox、Chrome、Safari等)中都能正常工作。以下是一些常见的兼容性问题及解决方案: #### 2.1 创建...

    Ajax读书笔记

    - 在Firefox和其他非IE浏览器中,可以通过`window.XMLHttpRequest`来创建请求对象:`var xhr = new XMLHttpRequest();` - 在Internet Explorer中,则需要通过`window.ActiveXObject`创建,具体版本可能会影响创建...

    FireFox下用XML DOM解析XML文档(ASP.NET Web)

    当需要在Firefox浏览器环境下处理XML文档时,开发者通常会使用XML DOM(Document Object Model)来解析和操作XML。本文将详细讲解如何在Firefox下利用XML DOM解析XML文档。 首先,理解XML DOM的概念是至关重要的。...

    Ajax底层原理及使用有那些方式和面试问题

    if (window.XMLHttpRequest) { // Firefox, Chrome, IE7+, Safari xhr = new XMLHttpRequest(); } else { // IE6, IE5 xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function...

    ajax使用教程

    Ajax最初在Internet Explorer 5中引入,但真正的广泛支持始于Mozilla、Firefox和Safari。为了实现跨浏览器的Ajax,开发人员通常会使用一个兼容性的库,如jQuery或Prototype,它们提供了统一的API来处理不同浏览器间...

    Ajax读取xml数据类型例子

    在这个例子中,我们将探讨如何使用AJAX来读取XML数据,特别关注在Chrome和Firefox浏览器中的实现。 XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,具有良好的结构和可读性。在JavaScript...

    深入理解ajax系列第一篇之XHR对象

    在IE5中,XHR是通过ActiveX对象MSXML实现的,而在IE7及以上版本以及Firefox、Chrome、Safari等现代浏览器中,它们支持原生的XHR对象。创建XHR对象的兼容代码如下: ```javascript var xhr; if (window....

    浏览器调试ajax请求

    打开Chrome或Firefox的开发者工具,切换到网络(Network)面板,可以看到所有的HTTP请求,包括Ajax请求。这里我们可以查看请求的详细信息,如请求头、响应头、请求体和响应数据,以及状态码,从而判断请求是否成功。...

    Ajax技术简明手册

    例如,Internet Explorer 5.0及以上版本使用`ActiveXObject`,而其他现代浏览器如Firefox、Chrome等则直接使用`XMLHttpRequest`。 - **创建方法**:在JavaScript中,可以通过检测浏览器类型并相应地创建`...

    ajax详细总结

    // 对于现代浏览器(Firefox, Chrome, Safari, etc.) xhr = new XMLHttpRequest(); } else { // 对于旧版IE (IE5, IE6, IE7, IE8) xhr = new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } ``` ###...

    firefox3中onreadystatechange事件不会触发

    总的来说,解决“Firefox 3中`onreadystatechange`事件不会触发”的问题需要深入理解XMLHttpRequest的工作原理,以及浏览器的兼容性和扩展可能带来的影响。通过细致的代码审查、使用开发者工具和进行兼容性测试,...

    ajax-demo推送演示例子

    1. 创建XMLHttpRequest对象:所有现代浏览器(IE7+,Firefox,Chrome,Safari等)都内置了XMLHttpRequest对象,用于处理异步请求。 2. 发起HTTP请求:使用XMLHttpRequest对象的open()方法设置请求类型(GET或POST)...

    Ajax的实现步骤

    // 对于现代浏览器(IE7+, Firefox, Chrome, Safari, Opera) xmlHttp = new XMLHttpRequest(); } catch (e) { try { // 对于旧版本的Internet Explorer(IE6, IE5) xmlHttp = new ActiveXObject("Msxml2....

Global site tag (gtag.js) - Google Analytics