使用javascript原生XMLHttpRequest对象进行ajax交互

AJAX(Asynchronous Javascript And XML):异步javascript和xml,是一种创建交互式网页应用的网页开发技术。

AJAX通过在后台与服务器进行数据交换,从而使网页实现异步更新,提高了系统性能和用户友好度。

 

//post请求

 

<script type="text/javascript">
		window.onload=function(){
			var username=document.getElementById("name");
			username.onblur=function(){
				var name=this.value;
				if(name == ''){
					document.getElementById('tip').innerHTML="<b class='notice'>请输入用户名</b>"; return;
				}
				/*
				if(window.XMLHttpRequest){
					//code for IE7+,Firefox,Chrome,Opera,Safari
					xhr=new XMLHttpRequest();
				} else {
					//code for IE6,IE5
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				*/
				//此处默认为内建XMLHttpRequest对象浏览器
				var xhr=new XMLHttpRequest();
				//打开网页(请求方法,请求网页,是否异步交互['是'=>true,'否'=>false])
				xhr.open('post','demo_post.php',true); 
				//设置请求头信息
				xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
				//发送数据
				xhr.send("name="+name);
				xhr.onreadystatechange=function(){
				//XMLHttpRequest对象的三个重要属性:readyState、onreadystatechange、Status,每当readyState改变时,就会触发onreadystatechange事件
				//readyState属性存有XMLHttpRequest的状态信息,从0到4发生变化:
				//	0:请求未初始化
				//	1:服务器连接已建立
				//	2:请求已接收
				//	3:请求处理中
				//	4:请求已完成,且响应已就绪
					if(this.readyState == 4 && this.status == 200) {
						//alert(this.responseText);
						if(this.responseText != 1){
							alert("该用户名已经注册!");
						} else {
							alert("可以注册!");
						}
					}
				}
			}
		}
	</script>

 

 

//get请求:

 

 

<script type="text/javascript">
        window.onload=function(){
            var username = document.getElementById("name");
            username.onblur = function(){
                var name = this.value;
                if(name == ""){
                    document.getElementById("tip").innerHTML = "<b class='notice'>请输入用户名</b>";
                    return;
                }
                var xhr = new XMLHttpRequest();
                //var uri = "demo_get.php?name="+name;
                xhr.open("get","demo_get.php?name="+name,true);  //true代表异步交互
                //xhr.open("get","demo_get.php?t="+Math.random,)
                //get无需设置头信息 ,
                xhr.send(null);
                //回调函数
                xhr.onreadystatechange=function(){
                    if(this.readyState == 4 && this.status == 200){
                        //alert(this.responseText);
                        if(this.responseText != 1){
                            alert("该用户名已经注册!");
                        } else {
                            alert("可以注册!");
                        }
                    }
                }
            }
        }
    </script>

 

 

 

//后台请求页:

 

<?php
	$name = $_POST['name'];
	//or  $name = $_GET['name'];
	$dsn = "mysql:host=localhost;dbname=demo";
	$db = new PDO($dsn,'root','');
	$res = $db->query("select * from tbl_user where username='".$name."'");
	if($res->fetch()) {
		echo 0; //不可以注册
	} else {
		echo 1; //可以注册
	}

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值