了解Ajax及Ajax如何发送请求
Written on: Mei 03, 2021
Title : 了解Ajax及Ajax如何发送请求
link : 了解Ajax及Ajax如何发送请求
了解Ajax及Ajax如何发送请求
由于JavaScript能力有限,它所提供的API都只停留在单机阶段。这样会造成一些功能无法实现,如:无法实现用户登录时,用户在输入用户账户时显示用户对应的头像;无法实现用户注册时,用户输入账号或用户名时提示是否存在;无法实现在留言板功能看到最新的用户留言。
上述这些问题的共同点就是:数据存放在服务端,无法通过已知的API获取。而Ajax的出现就解决了这些问题。
已知的发送请求的方式,就是在地址栏输入地址,回车刷新,对特定的元素的href或src属性,表单的提交,使用ajax通过JavaScript直接发送网络请求,对服务器发出请求并接受服务端返回的响应,这样实现的功能会更多,不再是单机游戏。
此时Ajax的出现就解决了这些问题
这里展示一套原生Ajax发送请求步骤
//发送ajax请求步骤 //1 创建一个发送Ajax请求步骤:
①创建
②准备发送,打开与一个网址之间的连接
③执行发送动作
④指定xhr状态变化事件处理函数
本质上- open()方法开启请求,xhr.open(请求方法.url) - 发送请求方式有:get、post、delete、put - get 请求,获取或查询数据,在get请求中,参数的传递是直接在url上通过 ' ? '进行参数传递的;get请求时,无需设置响应体。 
- post 请求,post请求中,使用请求体来承载需要提交的数据,与get请求相比更安全;post请求需要设置请求头Content-Type,便于服务端接收数据。 
- put 请求,更新数据请求 
- delete 请求,删除数据请求 
- xhr.open()方法还有第三个参数,第三个参数要求传入的是一个布尔值,作用就是设置此次请求是否采用异步方式执行。默认值是true,表示异步,false是同步执行。这里不建议同步执行,否则代码会卡死在send()这一步。 - 【关于,同步与异步的理解: - 同步就是一个人在做一件事时,同一个时刻只能做一件事,做完这件才能做下件事,其他事情只能等待; 
- 异步就是一个人在做一件事时不需要等待这件事完成,可以做其他事。】 
 
 
- setRequestHeader()方法设置请求头,这个方法必须在open()和send()之间调用。xhr.setRequestHeader(header,value); - 其中:
     header一般都设置为 "Content-Type",传输数据类型,服务器需要传输的数据类型;
 -     value则是具体的数据类型,常用"application/x-www-form-urlencode" 和 "application/json" 
 
- send()方法发送请求,用于发送HTTP请求,xhr.send(数据体),数据体是根据请求头中的类型进行传参;如果是get方法,无需设置数据体,你可以传null或者不传参。 - 【通常为了确定事件一定会触发,在发送请求send()之前,一定先注册readystatechange,这样不论是同步还是异步都能触发成功】 
- readyState属性返回一个 - readyState - 状态描述 - 说明 
- 0 - UNSENT - xhr被创建,但还未调用open()方法;(初始化) 
- 1 - OPENED - open()方法被调用,建立连接;(建立连接) 
- 2 - HEADERS_RECEIVED - send()方法被调用,获取到了状态行和响应头;(接收到响应头) 
- 3 - LOADING - 响应体下载中,部分数据已经在responseText中了;(响应体加载中) 
- 4 - DONE - 响应体下载完成,可以直接使用responseText了;(加载完成) 
 - 一般情况下,在readyState值为4时,执行响应的后续逻辑,如:一些事件函数等。
 xhr.onreadystatechange = function(){
 if(this.readyState == 4){
 //后续的逻辑.......
 }
 }
 
 
 
 
   
open()方法开启请求,xhr.open(请求方法.url)
- 发送请求方式有:get、post、delete、put - get 请求,获取或查询数据,在get请求中,参数的传递是直接在url上通过 ' ? '进行参数传递的;get请求时,无需设置响应体。 
- post 请求,post请求中,使用请求体来承载需要提交的数据,与get请求相比更安全;post请求需要设置请求头Content-Type,便于服务端接收数据。 
- put 请求,更新数据请求 
- delete 请求,删除数据请求 
- xhr.open()方法还有第三个参数,第三个参数要求传入的是一个布尔值,作用就是设置此次请求是否采用异步方式执行。默认值是true,表示异步,false是同步执行。这里不建议同步执行,否则代码会卡死在send()这一步。 - 【关于,同步与异步的理解: - 同步就是一个人在做一件事时,同一个时刻只能做一件事,做完这件才能做下件事,其他事情只能等待; 
- 异步就是一个人在做一件事时不需要等待这件事完成,可以做其他事。】 
 
 
- setRequestHeader()方法设置请求头,这个方法必须在open()和send()之间调用。xhr.setRequestHeader(header,value); - 其中: 
  header一般都设置为 "Content-Type",传输数据类型,服务器需要传输的数据类型;-  value则是具体的数据类型,常用"application/x-www-form-urlencode" 和 "application/json" 
send()方法发送请求,用于发送HTTP请求,xhr.send(数据体),数据体是根据请求头中的类型进行传参;如果是get方法,无需设置数据体,你可以传null或者不传参。
【通常为了确定事件一定会触发,在发送请求send()之前,一定先注册readystatechange,这样不论是同步还是异步都能触发成功】
readyState属性返回一个
| readyState | 状态描述 | 说明 | 
|---|---|---|
| 0 | UNSENT | xhr被创建,但还未调用open()方法;(初始化) | 
| 1 | OPENED | open()方法被调用,建立连接;(建立连接) | 
| 2 | HEADERS_RECEIVED | send()方法被调用,获取到了状态行和响应头;(接收到响应头) | 
| 3 | LOADING | 响应体下载中,部分数据已经在responseText中了;(响应体加载中) | 
| 4 | DONE | 响应体下载完成,可以直接使用responseText了;(加载完成) | 
一般情况下,在readyState值为4时,执行响应的后续逻辑,如:一些事件函数等。
xhr.onreadystatechange = function(){
  if(this.readyState == 4){
    //后续的逻辑.......
  }
}
原文转载:http://www.shaoqun.com/a/720761.html
跨境通电子商务平台:https://www.ikjzd.com/w/1329.html
3suisses:https://www.ikjzd.com/w/412
由于JavaScript能力有限,它所提供的API都只停留在单机阶段。这样会造成一些功能无法实现,如:无法实现用户登录时,用户在输入用户账户时显示用户对应的头像;无法实现用户注册时,用户输入账号或用户名时提示是否存在;无法实现在留言板功能看到最新的用户留言。 上述这些问题的共同点就是:数据存放在服务端,无法通过已知的API获取。而Ajax的出现就解决了这些问题。 已知的发送请求的方式,就是在地
慧聪商务网:https://www.ikjzd.com/w/1836
zappos:https://www.ikjzd.com/w/330
飞书互动:https://www.ikjzd.com/w/1319.html
口述:不能娶情人 她另结新欢:http://lady.shaoqun.com/m/a/273411.html
不要低估疫情对中国经济的影响,密切关注中小企业生存困境:https://www.ikjzd.com/home/115359
Anker售后小卡片分享给大家,赚点小积分哈:https://www.ikjzd.com/tl/3187
That's the article 了解Ajax及Ajax如何发送请求
You are now reading the article 了解Ajax及Ajax如何发送请求 with link address https://southafrica-update.blogspot.com/2021/05/ajaxajax.html

