ajax使用方式

ajax使用方式

  1. 原生方式
<head>
    <meta charset="UTF-8">
    <title>原生js方式实现ajax技术</title>
    <script>
        function commitData() {
            // 第一步 创建Ajax对象
            var ajaxObj = new XMLHttpRequest();
            var value = document.getElementsByTagName("input")[0].value;
            // 第二步 给ajax对象绑定参数 (请求方式  url  是否异步)
            ajaxObj.open("POST","/ajaxDemo01",true);
            // 第三步  给服务器端发送请求
            // 如果是post请求 额外添加请求头
            ajaxObj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            ajaxObj.send("username="+value);
            // 第四步接收响应结果值  responseText
            ajaxObj.onreadystatechange = function()
            {
                if (ajaxObj.readyState==4 && ajaxObj.status==200){
                   var result = ajaxObj.responseText;
                   alert(result);
                }
            }
        }
    </script>
</head>
<body>
    <form action="#" id="formData">
        用户名:<input type="text" placeholder="姓名" name="username" />
        <input type="button" value="提交" onclick="commitData();" />
    </form>

</body>
  1. jQuery实现ajax方式(POST)
<head>
    <meta charset="UTF-8">
    <title>jQuery实现Ajax方式1</title>
    <script src="./js/jquery-1.12.4.min.js"></script>
 <script>
        $(function () {
            $("#inp").on("click",function () {
                //获取页面中的username和password值
                //var username = $("#username").val();
                //var password = $("#password").val();
                // 走ajax方式  $.ajax()
                $.ajax({
                    // 参数列表
                    url:"/queryDemo01",
                    //data:"username="+$("#username").val()+"&password="+$("#password").val(),// 字符串拼接
                    //data:{"username":$("#username").val(),"password":$("#password").val()},
                    data:$("#formData").serialize(),// 推荐使用
                    type:"POST",
                    success:function (data) { // 请求成功时,执行该函数
                           // data  服务器响应的结果值  data----->String
                           //alert(data);// json对象
                           // 接收后端的数据  用户名和密码值 插入到对应的span标签中
                           // 将来以对象的方式接收  json
                           //alert(data.username+"-------");
                           $("#uName").html(data.username);
                           $("#uName").css("color","green");
                           //alert(data.password+"+++++++");
                           $("#pwd").html(data.password);
                           $("#pwd").css("color","red");
                    },
                    error:function () {   // 请求失败时执行该函数
                            alert("请求失败");
                    },
                    //dataType:"json"  // 设置接收到的响应数据格式   text 纯文本形式
                });
            });
        })
    </script>
</head>
<body>
      <form action="#" id="formData">
          姓名:<input id="username" type="text" name="username" placeholder="姓名" />
          <span id="uName"></span>
          密码:<input id="password" type="password" name="password" placeholder="密码" />
          <span id = "pwd"></span>
          <input id="inp" type="button" value="提交">
      </form>
</body>
  1. jQuery实现ajax方式(POST)
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/jquery-1.12.4.min.js"></script>
    <script>
        $(function () {
            $("#inp").on("click",function () {
                 // jQuery实现ajax的第二种方式  $.get()
                 $.get("/ajaxDemo02",                      //{"username":$("#username").val(),"password":$("#password").val()}
                        $("#formData").serialize(),
                        function (data) {
                            alert(data);
                        },
                        "text"
                     )
            })
        })
    </script>
</head>
<body>
<form action="#" id="formData">
    姓名:<input id="username" type="text" name="username" placeholder="姓名" />
    <span id="uName"></span>
    密码:<input id="password" type="password" name="password" placeholder="密码" />
    <span id = "pwd"></span>
    <input id="inp" type="button" value="提交">
</form>
</body>
  1. 动态验证
<head>
    <meta charset="UTF-8">
    <title>jQuery实现ajax方式3</title>
    <script src="./js/jquery-1.12.4.min.js"></script>
    <script>
        $(function () {
            // 当用户名输入框失去焦点查询数据库中该用户名是否存在
            // 如果存在 传回来一个数据 “该用户名太受欢迎了”  颜色为红色
            // 如果不存在  传回一个数据  "可以放心使用"   颜色为绿色
            $("#username").on("blur",function () {
                 // 使用ajax技术
                $.post("/queryUsername","username="+this.value,function (data) {
                    // 后端传回来一个数字 0-->代表没有查到  1--->查到了
                    if (data==0){
                        $("#uName").html("可以放心使用");
                        $("#uName").css("color","green");
                    } else {
                        $("#uName").html("该用户名太受欢迎了");
                        $("#uName").css("color","red");
                    }
                });
            });
        });
    </script>
</head>
<body>
<form action="#" id="formData">
    姓名:<input id="username" type="text" name="username" placeholder="姓名" />
    <span id="uName"></span>
    密码:<input id="password" type="password" name="password" placeholder="密码" />
    <span id = "pwd"></span>
    <input id="inp" type="button" value="提交">
</form>
</body>

补充:

1.on()和click()在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中。
而动态添加的 HTML 元素,使用 click() 这种写法,点击 Delete 按钮无法删除;使用 On() 方式可以。

$("#newclick").click(function(){ 
    $(".li").append('<li>动态添加的click<button class="deleteclick">Delete</button></li>'); 
});
$("#newon").click(function(){ 
    $(".li").append('<li>动态添加的on<button class="deleteon">Delete</button></li>'); 
});

$(".li").on('click', ".deleteon", function(){
    $(this).parent().remove(); 
})
$(".deleteclick").click(function(){ 
    $(this).parent().remove(); 
});
2.$(selector).serialize()
  序列化表单值,创建 URL 编码文本字符串。
 输出标准的查询字符串:a=1&b=2&c=3&d=4&e=5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值