JavaScript学习笔记(9.3)
创始人
2025-05-29 13:15:18
0

XMLHttpRequest对象属性

属性描述
onreadystatechange定义当readyState属性发生变化时被调用的函数
readyState

保存XMLHttpRequest的状态。

0:请求未初始化

1:服务器连接已建立

2:请求已收到

3:正在处理请求

4:请求已完成且响应已就绪

responseText以字符串返回响应数据
responseXML以XML数据返回响应数据
status

返回请求的状态号

200:OK

403:Forbidden

404:NOt found

statusText返回状态文本(比如OK或Not Found)

XMLHttpRequest对象用于同服务器交换数据

向服务器发送请求

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

xhttp.open("GET","ajax.txt",true)
xhttp.send()
方法描述
open(method,url,async)

规定请求的类型

method:请求的类型:GET还是POST

url:服务器(文件位置)

async:true(异步)或false(同步)

send()向服务器发送请求(用于GET)
send(string)向服务器发送请求(用于POST)

GET还是POST

GET比POST更简单更快,可用于大多数情况下。

不过,请在以下情况下始终使用POST:

缓存文件不是选项(更新服务器上的文件或数据库)

向服务器发送大量数据(POST无大小限制)

发送用户输入(可包含未知字符),POST比GET更强大更安全

GET请求

一条简单的GET请求:

xhttp.open("GET", "demo_get.asp", true);
xhttp.send();

如果需要用GET方法来发送信息,需要将URL添加信息

xhttp.open("GET", "demo_get.asp?fname=mez&nianling=14", true);
xhttp.send();

POST请求

如果是HTML表达提交数据,需要setRequestHeader()添加一个HTTP头部。请在send()方法中规定需要发送的数据:

xhttp.open("POST","ajax.asp",true)
xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded")
xhttp.send("fname=mez&age=17")
方法描述
setRequestHeader(header,value)

向请求添加HTTP头部

header:规定头部名称

value:规定头部值

url-服务器上的文件

open()方法的url参数,是服务器上文件的地址:

xhttp.open("GET","ajax.asp",true)

该文件可以是任何类型的文件,如.txt和.xml,或服务器脚本文件。

如需异步发送请求,open()方法的async参数必须设置为TRUE:

发送异步请求对web开发人员来说是一个巨大的进步。服务器上执行的许多任务都非常耗时。在Ajax之前,该操作可能会导致应用程序挂起或停止。

通过异步发送,JavaScript不必等待服务器相应,而是可以:

在等待服务器响应时执行其他脚本

当响应就绪时处理响应

onreadystatechange属性

通过XMLHttpRequest对象,您可以定义当请求接收到应答时所执行的函数。

xhttp.onreadystatechange=function(){
if(this.readyState==4 && this.status==200){document.getElementById("demo").innerHTML=this.responseText;
}
}
xhttp.open("GET",ajax.txt,true)
xhttp.send()

不推荐同步的XMLHttpRequest(async=false),因为JavaScript将停止执行知道服务器相应就绪。如果服务器繁忙或缓慢,应用程序将挂起或停止。

每当readyState发生变化时就会调用onreadystatechange函数。

使用回调函数

回调函数是一种作为参数被传递到另一个函数的函数。

如果网站中有多个Ajax任务,那么应该创建一个执行XMLHttpRequest对象的函数,以及一个供每个Ajax任务的回调函数。

该函数应当包含url以及当响应就绪时调用的函数。

loadDoc("url-1", myFunction1);loadDoc("url-2", myFunction2);function loadDoc(url, cFunction) {var xhttp;xhttp = new XMLHttpRequest();xhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {cFunction(this);}};xhttp.open("GET", url, true);xhttp.send();
}function myFunction1(xhttp) {// 行动在这里} 
function myFunction2(xhttp) {// 行动在这里}

JSON:JavaScript Object Notation(JavaScript对象标记法)

JSON是一种存储和交换数据的语法。

JSON是通过JavaScript对象标记法写的文本。

交换数据

当数据在浏览器与服务器之间进行交换时,这些数据只能是文本。

JSON属于文本,并且我们能够把任何JavaScript对象转换为JSON,然后将JSON发送到服务器。

发送数据

如果数据存储在JavaScript对象中,可以把该对象转换为JSON,然后将其发送到服务器。

var obj={name:"mez",age:28,city:"China"}
var json=JSON.stringify(myobj)
window.location="demo_json.php?x=" +myJSON

接收数据

如果以Jason格式接收到的数据,可以将其转换成JavaScript对象:

var myJSON=`{"name":"mez", "age":62, "city":China}`
var myobj=JSON.parse(myJSON)
document.getElementById("demo").innerHTML=myobj.name

相关内容

热门资讯

安卓系统换成苹果键盘,键盘切换... 你知道吗?最近我在想,要是把安卓系统的手机换成苹果的键盘,那会是怎样的体验呢?想象那是不是就像是在安...
小米操作系统跟安卓系统,深度解... 亲爱的读者们,你是否曾在手机上看到过“小米操作系统”和“安卓系统”这两个词,然后好奇它们之间有什么区...
miui算是安卓系统吗,深度定... 亲爱的读者,你是否曾在手机上看到过“MIUI”这个词,然后好奇地问自己:“这玩意儿是安卓系统吗?”今...
安卓系统开机启动应用,打造个性... 你有没有发现,每次打开安卓手机,那些应用就像小精灵一样,迫不及待地跳出来和你打招呼?没错,这就是安卓...
小米搭载安卓11系统,畅享智能... 你知道吗?最近小米的新机子可是火得一塌糊涂,而且听说它搭载了安卓11系统,这可真是让人眼前一亮呢!想...
安卓2.35系统软件,功能升级... 你知道吗?最近在安卓系统界,有个小家伙引起了不小的关注,它就是安卓2.35系统软件。这可不是什么新玩...
安卓系统设置来电拦截,轻松实现... 手机里总是突然响起那些不期而至的来电,有时候真是让人头疼不已。是不是你也想摆脱这种烦恼,让自己的手机...
专刷安卓手机系统,安卓手机系统... 你有没有想过,你的安卓手机系统是不是已经有点儿“老态龙钟”了呢?别急,别急,今天就来给你揭秘如何让你...
安卓系统照片储存位置,照片存储... 手机里的照片可是我们珍贵的回忆啊!但是,你知道吗?这些照片在安卓系统里藏得可深了呢!今天,就让我带你...
华为鸿蒙系统不如安卓,挑战安卓... 你有没有发现,最近手机圈里又掀起了一股热议?没错,就是华为鸿蒙系统和安卓系统的较量。很多人都在问,华...
安卓系统陌生电话群发,揭秘安卓... 你有没有遇到过这种情况?手机里突然冒出好多陌生的电话号码,而且还是一个接一个地打过来,简直让人摸不着...
ios 系统 安卓系统对比度,... 你有没有发现,手机的世界里,iOS系统和安卓系统就像是一对双胞胎,长得差不多,但细节上却各有各的特色...
安卓只恢复系统应用,重拾系统流... 你有没有遇到过这种情况?手机突然卡顿,或者某个应用突然罢工,你一气之下,直接开启了“恢复出厂设置”大...
安卓系统出现支付漏洞,揭秘潜在... 你知道吗?最近安卓系统可是闹出了不小的风波呢!没错,就是那个我们每天离不开的安卓系统,竟然出现了支付...
苹果换了安卓系统恢复,体验变革... 你有没有遇到过这种情况?手机里的苹果突然变成了安卓系统,而且还是那种让你摸不着头脑的恢复模式。别急,...
安卓怎么卸载系统app,轻松告... 手机里的系统应用越来越多,有时候真的让人眼花缭乱。有些应用虽然看起来很实用,但用起来却发现并不适合自...
安卓系统查看步数,揭秘日常运动... 你有没有发现,每天手机里的小秘密越来越多?今天,咱们就来聊聊安卓系统里那个悄悄记录你每一步的小家伙—...
安卓系统未来会不会,未知。 你有没有想过,那个陪伴我们手机生活的安卓系统,它的未来会怎样呢?想象每天早上醒来,手机屏幕上跳出的信...
安卓系统怎么设置截图,轻松捕捉... 亲爱的手机控们,你是不是也和我一样,有时候想记录下手机屏幕上的精彩瞬间呢?别急,今天就来手把手教你如...
安卓系统下载软件安装,安卓系统... 你有没有发现,手机里的安卓系统就像一个巨大的宝藏库,里面藏着各种各样的软件,让人眼花缭乱。今天,就让...