分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

Ajax

发布时间:2023-09-06 02:15责任编辑:顾先生关键词:Ajax

什么是Ajax

AJAX(Asynchronous javascript and xml)用JavaScript 以异步的形式操作 xml (现在操作的是json)

  • Web的传统模型。客户端向服务器发送一个请求,服务器返回整个页面,如此反复

    form表单传输数据的方式就属于传统的web模型,当我们提交数据后会刷新整个页面,在新的页面中返回内容。

    form表单有三个很重要的属性,分别是

    1. method:规定发送数据的http方式,一般是get或者post

    2. action:要把数据传送到的地址

    3. enctype:规定在发送表单数据之前如何对其进行编码

        enctype的默认值是 “application/x-www-form-urlencoded”,即在发送前编码所有字符,这个属性值即使我们不写也是默认这个的。

           multipart/form-data (<input type=‘file‘>) 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值

  • AJAX模型中,数据在客户端与服务器之间独立传输,服务器不再返回整个页面。(异步局部地获取数据,大大改善了Form表单的缺点)

Ajax重要的两个对象

new XMLHttpRequest() 和new ActiveXObject(‘Microsoft.XMLHttp‘) 一般的主流浏览器支持第一个方法,IE6以下用第二个方法。

对象的方法

方法描述
abort 停止当前的请求
getAllResponseHeaders把http请求的所有响应首部最为键/值返回
getResponseHeaders(‘headerLabel’) 返回指定首部的串值
open(‘method’, ‘url’, ‘true’) 

建立对服务器的调用,method参数可以是get、post或者put。

url参数可以是相对url或者绝对url,

第三个参数是选择异步还是同步,异步是true。

这个方法还包括三个可选参数。

send(string)向服务器发送请求     string:仅用于 POST 请求
setRequestHeader(‘header’, ‘value’) 

向请求添加 HTTP 头。之前必须调用open方法

header: 规定头的名称

value: 规定头的值

对象的属性

属性描述
onreadystatechange状态改变触发器
readyState对象的状态,状态值

0代表未初始化,未调用send()方法

1代表读取中,已调用send(),正在发送请求

2代表已读取,send方法执行完成,接收到全部响应内容

3代表交互中,正在解析响应内容

4代表完成,响应内容解析完成

responseText 

获得字符串形式的响应数据

responseXML

获得XML形式的响应数据

 

status

 服务器返回的状态码,如:404 = “文件未找到”、200 = “成功” 500 = “服务器内部错误” 304=“资源未被修改”
 

statusText

 

服务器返回的状态文本信息

AJAX创建流程

1.生成一个ajax对象

2.通过ajax对象 open(method,url,flag)方法初始化请求;

3.通过ajax对象 send发送数据

4.通过ajax对象的onreadystatechange来监听状态改变,当数据请求成功之后就可以操作数据了(readyState == 4&&status==200)

下面封装一个属于自己的ajax

 1 function ajax(method, url, callback, data, flag) { 2 ????var xhr = null; 3 ????if(window.XMLHttpRequest) { 4 ????????xhr = ?new XMLHttpRequest(); 5 ????}else { 6 ????????xhr = new ActiveXObject(‘Microsoft.XMLHttp‘) 7 ????} 8 ????xhr.onreadystatechange = function() { 9 ????????if(xhr.readyState == 4) {10 ????????????if(xhr.status == 200) {11 ????????????????callback(xhr.responseText);12 ????????????}else {13 ????????????????console.log(‘error‘);14 ????????????}15 ????????}16 ????}17 ????method = method.toUpperCase();18 ????if(method == ‘GET‘) {19 ????????var date = new Date(),20 ????????????timer = date.getTime();21 ????????xhr.open(method, url + ‘?‘ + data + ‘&timer=‘ + timer, flag);22 ????????xhr.send();23 ????}else if(method == ‘POST‘) {24 ????????xhr.open(method, url, flag);25 ????????xhr.setRequestHeader(‘Content-type‘,‘application/x-www-form-urlencoded‘);26 ????????xhr.send(data);27 ????}28 }
View Code

Ajax

原文地址:https://www.cnblogs.com/freefy/p/9656940.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved