博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax笔记1
阅读量:6818 次
发布时间:2019-06-26

本文共 2362 字,大约阅读时间需要 7 分钟。

Ajax用于与服务器进行异步交互,实现页面的动态局部刷新,Ajax有一个关键对象XMLHttpRequest,学习Ajax关键是掌握XMLHttpRequest的操作方法

Ajax的使用步骤

1.创建XMLHttpRequest对象

Ajax有一个关键的对象XMLHttpRequest,不同浏览器对该对象的创建方式不一样

//一般浏览器支持下面这种方式var xhr = new XMLHttpRequest();//IE6,IE5支持下面这种方式var xhr = new ActiveXObject("Microsoft.XMLHTTP");

在JavaScript中可以对此创建方法进行封装,代码如下:

function getXhr(){    if(window.XMLHttpRequest){        return new XMLHttpRequest();    }else{        return new ActiveXObject("Microsoft.XMLHTTP");    }}

还有另一种方式

function getXhr(){    try{        return new XMLHttpRequest();    }catch(e){        try{            return new ActiveXObject("Msxml2.XMLHTTP");        }catch(e){            try{                return new ActiveXObject("Microsoft.XMLHTTP");            }catch(e){            throw e;            }        }    }}

2.与服务器建立连接

创建对象之后,要使用xhr.open(method, url, asyc)打开与服务器的连接,

open这个方法有三个参数:

1.第一个参数是请求方式:可以是"GET"或"POST",注意是字符串形式

2.第二个参数是请求的url:可以是servlet的地址

3.第三个参数是是否异步请求:true代表异步请求,false代表非异步请求

注意:当请求方式为为“POST”时,要设置请求头

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")

3.向服务器发送请求

建立连接之后,使用xhr.send(context)向服务器发送请求,参数为请求体

不同的请求方式,会send的参数会有所不同。

1.当请求方式是“GET”时,参数应该写“null”,即

xhr.send(null);

2.当请求方式是“POST”时,参数是请求体。当用户登陆时,可以用下面这种方式发送用户信息

xhr.send("username=example&passwd=123456677")

4.获取请求结果

此时要监听XMLHttpRequest的onreadystatechange事件,然后执行一些响应事件

这一步还要知道三个XMLHttpRequest的四个属性:

1.readyState

XMLHttpRequest对象存在五个状态,具体请看http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_onreadystatechange.asp

五个状态分别对应数字0,1,2,3,4。具体应用中只需要关心4这个状态,代表着请求已完成,且响应已就绪

2.status

这个属性代表服务器的响应状态码,常见的状态码有200,404,500。

使用给属性时一般使用200这个状态码,代表着服务器响应完成

3.responseText

通过它得到服务器响应的文本内容

4.responseXML

通过它得到服务器响应的xml内容

代码实例:

//得到xmlHttp对象的状态:var state = xhr.readyState;//得到服务器响应的状态码:var status = xhr.status;//得到服务器响应的内容var content = xhr.responseText; //得到服务器响应的文本内容var content = xhr.responseXML; //得到服务器响应的xml内容

Ajax应用实例

首先编写一个AjaxServlet,这里使用doGet方法处理请求,返回“ajax test”文本内容

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        response.getWriter().print("ajax test"); }

 再编写一个ajaxtest.jsp页面

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%>
Insert title here

 

 运行程序

点击按钮之后

 下一篇记录对ajax的封装,JQuery的ajax()方法就对Ajax进行了很好的封装

转载于:https://www.cnblogs.com/songzj/p/7641986.html

你可能感兴趣的文章
HDU 4686 Arc of Dream(递归矩阵加速)
查看>>
Apache 配置 Basic 认证
查看>>
使用 XML 实现 REST 式的 SOA
查看>>
SQL Server 日志收缩
查看>>
High accuracy voltage regulator
查看>>
directory not found for option
查看>>
【转载】菜鸟Ubuntu下安装Android Studio
查看>>
三阶魔方中心块调整配方和记忆方法
查看>>
Android Studio 快捷键整理分享
查看>>
Android Studio安装、配置
查看>>
SAP FI 财务模块 关键用户 考试练习 问卷
查看>>
Unity3D之Mecanim动画系统学习笔记(八):Animator Layers(动画分层)
查看>>
PIC24FJ64GB002 with bluetooth USB dongle
查看>>
C# ZPL II 命令打印标签
查看>>
代码面试之广义表
查看>>
hdu1754 I hate it线段树模板 区间最值查询
查看>>
【python】抄写大神的糗事百科代码
查看>>
序列化和反序列化
查看>>
android-studio 安装gradle
查看>>
nodejs字符与字节之间的转换
查看>>