写原生ajax的方法:首先创建xmlhttprequest对象;然后编写回调函数onreadystatechange;接着配置请求信息;最后发送请求即可。
ajax(asynchronous javascript and xml的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助。
简单地说,在不需要重新刷新页面的情况下,ajax 通过异步请求加载后台数据,并在网页上呈现出来。常见运用场景有表单验证是否登 入成功、百度搜索下拉框提示和快递单号查询等等。
想要对ajax有一个全面的了解,这里可以去js教程中对它进行一个全方面认识。
现在ajax经过各种优化已经变得非常方便了,例如使用jquery只需要一行便可以使用ajax了。
那么原生的ajax是什么样呢?
让我们来看一下吧。
<script type="text/javascript"> function ajax(url){ //创建xmlhttprequest对象,新版本的浏览器可以直接创建xmlhttprequest对象,ie5或ie6没有 //xmlhttprequest对象,而是用的activexobject对象 var xhr = window.xmlhttprequest ? new xmlhttprequest() : activexobject(microsoft.xmlhttp) xhr.open(get,url,true); xhr.send();//发送请求 xhr.onreadysattechange = () =>{ if(xhr.readystate == 4){//返回存有 xmlhttprequest 的状态。从 0 到 4 发生变化。 if(xhr.status == 200){//返回状态码 var data = xhr.responsetext; return data; } } } }</script>
readystate:
存有 xmlhttprequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status :
200: ok
404: 未找到页面
405:请求方式不正确
500:服务器内部错误
403:禁止请求
ajax有两种请求方式:
get请求方式
<script type="text/javascript"> function ajax() { //创建核心对象 xhr = null; if (window.xmlhttprequest) {// 新版本的浏览器可以直接创建xmlhttprequest对象 xhr = new xmlhttprequest(); } else if (window.activexobject) {// ie5或ie6没有xmlhttprequest对象 xhr = new activexobject(microsoft.xmlhttp); } //编写回调函数 xhr.onreadystatechange = function() { if (xhr.readystate == 4 && xhr.status == 200) { alert(xhr.responsetext) } } //open设置请求方式和请求路径 xhr.open(get, /ajax/ajax?userid=10);//一个url还传递了数据,后面还可以写是否同步 //send 发送 xhr.send(); }</script>
post请求方式
<script type="text/javascript"> function ajax() { //创建核心对象 xhr = null; if (window.xmlhttprequest) {// 新版本的浏览器可以直接创建xmlhttprequest对象. xhr = new xmlhttprequest(); } else if (window.activexobject) {// ie5或ie6没有xmlhttprequest对象 xhr = new activexobject(microsoft.xmlhttp); } //编写回调函数 xhr.onreadystatechange = function() { if (xhr.readystate == 4 && xhr.status == 200) { alert(xhr.responsetext)//警告框,显示返回的text } } //open设置请求方式和请求路径 xhr.open(post, /ajax/ajax2);//一个servlet,后面还可以写是否同步 //设置请求头 xhr.setrequestheader(content-type, application/x-www-form-urlencoded) //send 发送 xhr.send(userid=10); }</script>
以上就是原生ajax怎么写的详细内容。