美文网首页
原生Ajax

原生Ajax

作者: 9979eb0cd854 | 来源:发表于2018-11-01 14:50 被阅读59次

XMLHttpRequest 对象

XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

XMLHttpRequest的方法:

image.png

XMLHttpRequest的属性:

image.png
image.png

HTTP请求的方法:

post和get

image.png

post和get的区别:

image.png

同步和异步的区别:

image.png

创建Ajax的步骤:

分为四步

image.png

1、创建Ajax对象:

只兼容非IE6

var oAjax = new XMLHttpRequest();

如何兼容IE6

var oAjax = new ActiveXObject("Microsoft.XMLHTTP");

完整兼容做法:

if (window.XMLHttpRequest){
                        var oAjax = new XMLHttpRequest();
                    }
                    else {
                        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    }

2、连接服务器:

open(方法,连接的文件名,异步传输)
oAjax.open('get','a.txt',true);
oAjax.open('get','a.txt?t='+new Data().getTime(),true);//阻止缓存

3、发送请求:

oAjax.send();

4、接收返回的信息:

oAjax.onreadystatechange = function(){
                        //oAjax.readyState   //告诉浏览器和服务器,进行到哪一步了
                        if (oAjax.readyState == 4){ //读取完成,未代表成功
                            //判断读取成功还是失败
                            if (oAjax.status == 200){ //200代表成功
                                alert("成功:" + oAjax.responseText);
                            }
                            else {
                                alert("失败:" + oAjax.status);
                            }
                        }

完整代码

html

<input type="button" value="读取" id="btn1"/>

js

<script>
            window.onload = function(){
                var oBtn = document.getElementById("btn1");
                oBtn.onclick = function(){
                    //1、创建Ajax对象
                    //只兼容非IE6浏览器
                    //var oAjax = new XMLHttpRequest();
                    
                    //IE6
                    //var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    //alert(oAjax);
                    
                    //要做兼容
                    //第一步创建Ajax对象
                    if (window.XMLHttpRequest){
                        var oAjax = new XMLHttpRequest();
                    }
                    else {
                        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    
                    //alert(oAjax);
                    //第二步:连接服务器
                    //open(方法,连接的文件名,异步传输)
                    
                    //oAjax.open('get','a.txt',true);
                    oAjax.open('get','a.txt?t='+new Data().getTime(),true);//阻止缓存
                    
                    //第三步:发送请求
                    oAjax.send();
                    
                    //第四步:接收返回的信息
                    oAjax.onreadystatechange = function(){
                        //oAjax.readyState   //告诉浏览器和服务器,进行到哪一步了
                        if (oAjax.readyState == 4){ //读取完成,未代表成功
                            //判断读取成功还是失败
                            if (oAjax.status == 200){ //200代表成功
                                alert("成功:" + oAjax.responseText);
                            }
                            else {
                                alert("失败:" + oAjax.status);
                            }
                        }
                    };
                };
            };
        </script>

把Ajax封装成函数

<script>
            function ajax(url,fnSucc,fnFaild){
                //1、创建Ajax对象
                    if (window.XMLHttpRequest){
                        var oAjax = new XMLHttpRequest();
                    }
                    else {
                        var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    
                    //2、连接服务器
                    //open(方法,连接的文件名,异步传输)
                    oAjax.open('get',url,true);
                    
                    //3、发送请求
                    oAjax.send();
                    
                    //4、接收返回的信息
                    oAjax.onreadystatechange = function(){
                        //oAjax.readyState   //告诉浏览器和服务器,进行到哪一步了
                        if (oAjax.readyState == 4){ //读取完成
                            //判断读取成功还是失败
                            if (oAjax.status == 200){ //200代表成功
                                fnSucc(oAjax.responseText);
                            }
                            else {
                                if (fnFaild){
                                    fnFaild(oAjax.status);
                                }
                            }
                        }
                    };
            }
        </script>

引用调用封装的Ajax

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="Ajax.js"></script>
        <script>
            window.onload = function(){
                var oBtn = document.getElementById("btn1");
                oBtn.onclick = function(){
                    ajax("a.txt",function(str){
                        alert(str);
                    });
                };
            };
        </script>
    </head>
    <body>
        <input type="button" value="读取" id="btn1"/>
    </body>
</html>

相关文章

  • Ajax

    标签: Ajax 正文 一、实现一个原生Ajax 二、Ajax状态 三、将原生的 ajax 封装成 promise

  • js和jq的ajax调用

    原生ajax jQuery的ajax

  • html5的ajax学习(三)

    一.原生的ajax封装 原生的ajax的调用 二.jquery的ajax 2.1 jquery的语法 三. fun...

  • 原生ajax和jquery中的ajax

    原生的ajax请求方法: jquery中的ajax:

  • ajax

    原生ajax配置详解 对ajax简单封装 调用

  • Ajax Axios

    关于Ajax兼容性问题 前端原生Ajax(get方式),后端使用node.js 前后端代码: 前端原生Ajax(p...

  • ajax封装

    原生ajax封装

  • AJAX

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。 AJAX 是什么 ajax,即As...

  • [转]JS原生Ajax代码示例

    文章来源: JS原生Ajax和jQuery的Ajax与代码示例 -- 苏凯勇往直前 JS原生的Ajax其实就是围绕...

  • ajax总结

    1. Ajax 1.1 原生JavaScript封装Ajax 1.2 jquery ajax 及其 快捷方法 $....

网友评论

      本文标题:原生Ajax

      本文链接:https://www.haomeiwen.com/subject/pwhxxqtx.html