博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生js的ajax请求
阅读量:7029 次
发布时间:2019-06-28

本文共 2241 字,大约阅读时间需要 7 分钟。

什么是ajax:

通过在后台与服务器进行少量的数据交换,ajax可以使网页实现异步更新,这就意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新

ajax工作原理:

XMLHttpRequest 用于在后台与服务器交换数据,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
ActiveX 老版本的IE使用Active对象
open(method,url,async) method规定请求类型,url文件在服务器上的地址,async是否异步
send(string) 将请求发送到服务器,string(要发送的内容)仅用于post请求
setRequestHeader(header,value) 想请求添加HTTP头【header请求头的名称,value请求头的值】
onreadystatechange ()  
readyState 0:请求未初始化,1:服务器连接已建立,2:请求已接收,3:请求处理中,4:请求已完成,且响应就绪
status 200:“ok”,404:未找到页面
responseText 获得字符串形式的响应数据【如果来自服务器的相应并非xml】
responseXML 获得xml形式的响应数据

GET和POST请求的比较:

1.get请求更简单也更快,并且在大部分情况下都能够使用

2.在以下情况下请使用post请求:

  无法使用缓存文件(更新服务器上的文件或数据库)

  向服务器发送大量数据(post没有数据数量的限制)

  发送包含未知字符的用户输入时,post比get更稳定也更加可靠

-----------------------------------------------------------------------------------------------------------------------------

get请求注意事项:

例如:

var ajax = new XMLHttpRequest();

ajax.open("GET","demo.json",true);

ajax.send();

这种情况下你可能请求到的是缓存数据

为避免这种情况,向url中添加一个唯一的id

ajax.open("GET","demo.json?t="+Math.random(),true);

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

post请求注意事项:

如果需要像html表单那样post数据,请使用setRequesHeader()来添加HTTP头部,然后在send方法中规定希望发送的数据

例如:

var ajax = new XMLHttpRequest();

ajax.open("post","test.json",true);

ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");

ajax.send("username=zhangsan&psd=123");

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

关于async使用true还是false的问题:

XMLHttpRequest对象如果要用于ajax的话,其open方法的async参数必须设置为true

发送异步请求,通过ajax,javascript无需等待服务器响应,可以执行其它脚本,当响应就绪后在对响应进行处理

------------------------------------------------------------------------------------------------------------------------------------------------------------

完整示例:

var ajax = new XMLHttpRequest():

ajax.open("GET","test.json?id="+Math.random(),true);

ajax.send();

ajax.onreadystatechange = function(){

  if(ajax.readyState==4&&ajax.status==200){

//请求成功时返回数据jax.responseText

    console.log(ajax.responseText);

  }

}

 

posted on
2017-09-25 14:58 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/chuhanqiao/p/7591867.html

你可能感兴趣的文章
用MacBook对交换机进行初始化配置
查看>>
Linux 的五个重启命令及具体说明
查看>>
Hadoop虚拟化扩展(HVE)之资源扩展技术
查看>>
Exchange日常管理之十九:配置邮件提示功能
查看>>
论脚本时代:盘点那些节省时间的自动化软件
查看>>
虚拟资源引流变现
查看>>
Powershell管理系列(三)2012 AD域用户UPN名称还原
查看>>
C#设计模式(13)——代理模式(Proxy Pattern)
查看>>
K8S集群基于metrics server的HPA测试
查看>>
Linux哲学思想:组合小软件完成大任务
查看>>
Windows Thin PC安装功能组件
查看>>
管理是资产?不,管理是负债
查看>>
配置和访问终端服务RemoteApp
查看>>
python wx 的wx.Frame框架属性
查看>>
Cisco网络设备远程管理端口乾坤大挪移
查看>>
动态多点*** 单云双HUB
查看>>
OpenStack云第一天
查看>>
职场三问
查看>>
AB(apache benchmark)压力测试
查看>>
演示:思科IPS传感器的命令行初始配置(支持图型化管理)
查看>>