原生Ajax的使用(创建XMLHttpRequest对象、发送请求、GET 还是 POST、异步还是同步、处理后台返回的数据)

news/2024/7/19 16:39:09 标签: java, ajax, js

1 学习目标

(1)Ajax在开发中的应用(为什么要去使用它)
为了能够做局部刷新(只更新网页中的部分内容),以此来提高效率
(2)原生的Ajax的使用方式
(3)jQuery中的Ajax的使用方式
(4)修改之前的案例,将请求转换为Ajax的方式

2 Ajax入门

2.1流程
(1)发送请求:请求方式(get、post)、指定请求地址 、参数设置
(2)响应结果:响应状态(接受状态、结果状态)返回数据
(3)处理结果:根据具体的业务需求
2.2创建XMLHttpRequest对象
XMLHttpRequest 是 AJAX 的基础。
为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

javascript">var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 

2.3发送请求
如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

javascript">xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
方法描述
open(method,url,async)规定请求的类型、URL 以及是否异步处理请求。method:请求的类型;GET 或 POST。url:文件在服务器上的位置。async:true(异步)或 false(同步)
send(string)将请求发送到服务器。string:仅用于 POST 请求

GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

get请求携带参数:

javascript">//参数直接拼接到url中
xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
xmlhttp.send();

post请求携带参数

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

javascript">xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");
方法描述
setRequestHeader(header,value)向请求添加 HTTP 头。 header: 规定头的名称, value: 规定头的值。

异步还是同步
同步:JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。
异步:在等待服务器响应时执行其他脚本,当响应就绪后对响应进行处理。

3 处理后台返回的数据

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

属性描述
responseText获得字符串形式的响应数据。
responseXML获得 XML 形式的响应数据。

如果来自服务器的响应并非 XML,请使用 responseText 属性。
responseText 属性返回字符串形式的响应

javascript">var data = xmlhttp.responseText;
//将返回的数组字符串转换为数组对象
var dataArr = JSON.parse(data);

http://www.niftyadmin.cn/n/1679702.html

相关文章

Android Service(一)

一 、什么是Service?什么时候我们需要使用service? service就是android系统中的服务,它有这么几个特点:它无法与用户直接进行交互、它必须由用户或者其他程序显式的启动、它的优先级比较高,它比处于前台的应用优先级低…

oracle归档与非归档区别,Oracle 归档模式与非归档模式的切换

Oracle 归档模式与非归档模式的切换 1.查看oracle是否处于归档模式 arichive log list; 数据库日志模式 非存档模式自Oracle 归档模式与非归档模式的切换1.查看oracle是否处于归档模式arichive log list;数据库日志模式 非存档模式自动存档 禁用存档终点…

站在22岁的边上--我的2007

看到N多人开始年终总结,我也呻吟几声...其实很多东西已经记不起来了...翻看的一篇篇日志让我依稀记得一些...07年也是第一家公司兴衰的一年...年初那段时间的低迷以及重复乏味的新增需求及修改Bug,对于刚毕业工作不久正处成长阶段的我来说傅的技术已经让…

jQuery中的Ajax(基本语法、Ajax面试题、 layUI的方法级渲染)

1 基本语法 $.ajax({ //请求类型get/post method:"post", //指定请求地址 url:"UserServlet", //发送给服务器的数据 data:{"name":uname, } //代表返回的数据接收类型为json格式 dataType:"json", //请求成功后要做的事…

oracle 建表 varchar,一个完整的Oracle建表的例子

建表一般来说是个挺简单的事情,但是Oracle的建表语句有很多可选的参数,有些我们可能平时不太用,用的时候又不知道怎么用,这里就写一个较完整的建表的例子:CREATE TABLE banping(id NUMBER(5)CONSTRAINT banping_id_pk…

不是我干的!

三岁的丹丹不小心将衣柜上拉手弄坏,无论父亲怎么追问她都说不是她干的,父亲便换个方式问:丹丹,我知道这不是你干的,可是我想知道你是怎么把它弄下来的? “我轻轻一拧,它就下来了。真的不是…

blog_html

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE html> <html b:version2 classv2 expr:dirdata:blog.languageDirection xmlnshttp://www.w3.org/1999/xhtml xmlns:bhttp://www.google.com/2005/gml/b xmlns:datahttp://www.google.co…

分别使用Ajax和layUI实现分页

1 使用Ajax实现分页 1.1 后端servelet代码截取 /*** 查询所有的用户* 目的&#xff1a;获取到当前页的数据&#xff0c;实现分页效果* 思路&#xff1a;* 1、需要拿到当前页的数据queryUsersLimit* 2、分页相关的参数返回到前端&#xff1a;每页的条数、当前的页码数、…