2022-03-20 ajax的应用例子:检测用户名是否存在,同步百度的搜索栏

1.检测用户名是否存在

代码

打开服务器,并在阿帕奇服务器的www文件夹下创建如下文件

user.html
<body>
    <label for="">请输入用户名:</label>
    <input type="text">
    <button>点击</button>
    <span></span>
</body>
<script>
    var span = document.querySelector("span");
    var button = document.querySelector("button");
    var input = document.querySelector("input");
    button.addEventListener("click", ajax);
    function ajax() {
        var xhr = new XMLHttpRequest();
        xhr.open("get", "./user.php?user=" + input.value, true);
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                if (xhr.response == 1) {
                    span.innerHTML = "*已存在";
                    span.style.color = "red";
                }
                if (xhr.response == 2) {
                    span.innerHTML = "*注册成功";
                    span.style.color = "green";
                }
            }
        }
        xhr.send();
    }
</script>
user.php
<?php
  $user=$_GET['user'];
  $arr=['张三','李四','王五'];
  if(in_array($user,$arr)){
    echo 1;
  }else{
    echo 2;
  }
?>
效果

http://localhost/user.html
在这里插入图片描述

2.同步百度的搜索栏

2021-06-21 使用ajax设置同步百度的搜索栏

代码

baidu.html

<body>
    <input type="text" id="txt">
    <ul class="list"></ul>
</body>
<script>
    class Search {
        constructor(ops) {
            this.txt = ops.txt;
            this.list = ops.list;
            this.url = ops.url;
            this.addEvent();
        }
        addEvent() {
            const that = this;
            this.txt.oninput = function() {
                if (this.value === "") return;
                that.v = this.value;
                that.load();
            }
        }

        load() {
            request({
                url: this.url,
                type: "jsonp",
                data: {
                    wd: this.v,
                    cb: "dshdfja"
                },
                filedName: "cb",
                success: (res) => {
                    this.res = res.s;
                    this.render();
                }
            })
        }
        render() { //渲染
            let str = "";
            for (var i = 0; i < this.res.length; i++) {
                str += `<li>${this.res[i]}</li>`;
                this.list.innerHTML = str;
            }
        }
    }
    new Search({
        txt: document.getElementById("txt"),
        list: document.querySelector(".list"),
        url: "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su"
    });
    //设置ajax
    function request(ops) {
        let {
            url,
            success,
            type = "get",
            data = {},
            error,
            timeout = 1000,
            dataType = "text",
            filedName = ""
        } = ops;
        let str = "";
        for (let i in data) {
            str += `${i}=${data[i]}&`;
        }
        url = url + "?" + str + "_qft_=" + Date.now();
        if (type !== "jsonp") {
            let xhr = new XMLHttpRequest(); //创建xhr对象
            xhr.open(type, url); //设置请求
            xhr.onload = function() {
                    if (xhr.status === 200) {
                        const res = dataType === "json" ? JSON.parse(xhr.responseText) : xhr.responseText;
                    }
                } //设置监听
            xhr.send(); //发送请求
        } else {
            let script = document.createElement("script"); //动态创建script标签
            script.id = "abc";
            script.src = url; //用script标签的src属性进行跨域
            document.body.appendChild(script); //节点追加
            window[data[filedName]] = function(res) {
                res = dataType === "json" ? JSON.parse(res) : res;
                //成功后删除script标签
                success && success(res);
                script && script.remove();
            }
        }
    }
</script>
效果

在这里插入图片描述

3.jQuery的POST方式实现AJAX

代码
<body>
    <form autocomplete="off">
        姓名:<input type="text" id="username">
        <span id="uSpan"></span>
        <br> 密码:
        <input type="password" id="password">
        <br>
        <input type="submit" value="注册">
    </form>
</body>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

<script>
    //1.为用户名绑定失去焦点事件
    $("#username").blur(function() {
        let username = $("#username").val();
        //2.jQuery的POST方式实现AJAX
        $.post(
            //请求的资源路径
            "userServlet",
            //请求参数
            "username=" + username,
            //回调函数
            function(data) {
                //将响应的数据显示到span标签
                $("#uSpan").html(data);
            },
            //响应数据形式
            "text"
        );
    });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值