原生JS的Ajax方法

AJAX - Asynchronous Javascript And XML—(异步JavaScript和XML)

原生ajax五步走
1.创建XMLHttpRequest对象—ajax

2.设置相关参数ajax.open(Type,Url,bol)
—参数一:发送请求的方式【GET/POST】;
—参数二:接收请求的文件路径“index.php”
—GET请求时,将传递的参数写到入了后面—“index.php?name=yohe&age=24”
—参数三:传输的模式【true/false】-true为异步传输-false为同步传输

3.设置传递的参数
—GET方法时,传递的参数直接拼接在url后面,所以ajax.send(null);
—POST方法时,ajax.send(“key1=val1&key2=val2”);

*4.POST方法时,需要设置请求头文件,不然得不到传回来的数据【GET方法时不需要】
—ajax.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded charset=utf-8”);

5.为ajax绑定事件,监听当ajax的状态码【readyState】发生变化时,做出相应的操作

EG:

ajax.onreadystatechange = function(){
    if(ajax.readyState == 4 && ajax.status ==200){
        //这里的responseText相当于successFun中的data【字符串】
        //将json格式的字符串转换成JSON数据方法:JSON.parse(str);
        console.log(ajax.responseText);
    }
}

ps:在使用原生js的ajax方法时要加上

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded charset=utf-8");

全步骤代码:

//创建XMLHttpRequest对象
            var ajax = false;
            if(window.ActiveXObject){
                ajax = new ActiveXObject("Microsoft.XMLHTTP");
            }else{
                ajax = new XMLHttpRequest();
            }
            //创建请求-ajax.open()---GET方法
//          ajax.open("GET","index.php?username=asd&sex=male&age=18",true);
//          ajax.send(null);
//          ajax.onreadystatechange = function(){
//              console.log(ajax.readyState);
//              if(ajax.readyState ==4){
//                  console.log(ajax.responseText);
//              }
//          }
            //创建请求-ajax.open()---POST方法
            $("#username").on("input",function(){
                var user = $("#username").val();
                ajax.open("POST","index.php",true);
                ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                ajax.send("username="+user);
                ajax.onreadystatechange = function(){
                    console.log(ajax.readyState);
                    if(ajax.readyState ==4){
                        console.log(ajax.responseText);
                        if(!ajax.responseText){
                            $("#span").html("可用");
                            $("#span").css("color","blue");
                        }else{
                            $("#span").html("有重复的啦傻逼");
                            $("#span").css("color","red");
                        }
                    }
                }

            })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值