前后端数据交互(二)——原生 ajax 请求详解

2023-05-29 0 770

一、ajax如是说

ajax 是其间端可视化的关键方式或公路桥。它并非两个控制技术,是几组控制技术的女团。

ajax :a:触发器;j:js;a:和;x:服务器端的统计数据。

ajax的共同组成:

触发器的 js 该事件其它 js (处置导出统计数据)XMLHttpRequest 第一类统计数据(txt、json、xml、html)

透过前台与软件商小量统计数据传输,ajax能使网页同时实现触发器预览。也是在不须要再次读取整座网页的情况下,能预览部份网页的控制技术。现代的网页不采用ajax,假如须要预览文本,要再次读取整座网页。

前后端数据交互(二)——原生 ajax 请求详解

ajax允诺基本上原理:建立两个互联网允诺第一类 -> 推送相连允诺 -> 推送允诺统计数据 -> 检查和互联网允诺第一类的状况 -> 如果积极响应获得成功了 -> 应用程序转交回到统计数据并预览网页。接下去详尽如是说第一类的建立和它的方式。

二、建立 XMLHttpRequest 第一类

XMLHttpRequest 第一类,用作前台与流控制的统计数据传输,意味著能在不读取整座网页的情况下,预览部份文本或统计数据。当代应用程序基本上都全力支持,但旧版本的IE不全力支持,假如他们考量IE相容问题建立第一类的这时候须要相容建立。

考量相容时建立的第一类:

var xhr ; if( window.XMLHttpRequest ){ //检查和应用程序与否全力支持XMLHttpRequest xhr = new XMLHttpRequest() }else{ xhr = newActiveXObject(“Microsoft.XMLHTTP”) //相容IE6 IE5 }

三、XMLHttpRequest的方式

3.1、open( )

设置允诺的类型、允诺接口、与否触发器处置。

采用语法:open( method , url , async )

method:设置互联网允诺的类型,常用的 get 和 posturl:设置允诺的接口也是服务器的地址async:true时表示触发器,false表示同步

3.2、send( )

将允诺推送到服务器。

采用语法:send( string )

string,只用在允诺方式是post时,推送给服务器的统计数据。统计数据是键值对格式的,如:“name=jack&pwd=1234”

采用推送方式不同的这时候,传输统计数据添加方式也不同,所以他们如是说下分别为post和get时,统计数据是如何推送的?

3.3、提交方式

采用 get 方式提交

get推送允诺时,须要传给前台的统计数据透过url来传递,多个参数之间采用 & 符号相连,采用时如下:

xhr.opn( “GET” , “1.php?name=hello&age=world” , true ) xhr.send()采用 post 方式提交

采用 post 方式推送允诺时,采用send来推送统计数据,有时须要设置统计数据格式,类似表单那样,此时可透过 setRequestHeader 设置推送的统计数据格式

xhr.setRequestHeader( “Content-type”, “application/x-www-form-urlencoded”)

Content-type常见类型:

text/plain 纯文本,基本上不怎么用application/x-www-form-urlcoded 键值对格式传值,多个参数采用&相连multipart/form-data 定界符,分隔各个统计数据,经常用作上传文件

四、readyState 属性

readyState 存有 XMLHttpRequest 的状况,它的值从 0-4 发生变化,分别代表的意义:

0:允诺初始化,第一类刚刚建立1:服务器已相连2:已推送,send发放已调用3:已转交,此时只转交了积极响应(response)头部份4:已转交,此时转交积极响应(response)体信息

每当 readyState 状况值发生改变时会,就会触发 onreadystatechange 该事件,对应着每个状况值就会被触发五次。当状况值为4

xhr.onreadystateChange = function(){ if( xhr.readyState==4 ){ if( xhr.status>=200 && xhr.status<300 || xhr.status==304 ){ console.log(“允诺获得成功”,xhr.responseXML) }else{ console.log(“允诺失败”) } } }

五、积极响应信息

ponseText 或 responseXML 属性。

document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;<person> <name>小米粒</name> <age>18</age> </person> 导出时: document.getElementsByTagName(“name”)[0]

responseXML 目前已被 json 取代,所以作为了解就好。

六、ajax实例

var xhr ; if( window.XMLHttpRequest ){ xhr = new XMLHttpRequest() }else{ xhr = newActiveXObject(“Microsoft.XMLHTTP”) //相容IE6 IE5 } xhr.open(GET,1.txt,true) xhr.send() xhr.onreadystatechange =function(){ if(xhr.readyState==4){ if(xhr.status>=200 && xhr.status<300 || xhr.status==304){ console.log(“允诺获得成功”,xhr.response) // 允诺获得成功 abc }else{ console.log(“允诺失败”) } } }

1.txt 文档文本为 abc。所以回到的结果也是abc

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务