ajax

作者: GHope | 来源:发表于2018-08-27 19:43 被阅读54次

    ajax是什么?
    Asynchronous Javascript And XML
    上网怎么上的?
    客户端:浏览器,前端(html、css、js、jquery)
    服务端:现成的,比如百度、csdn等,后端(php、java、python)
    有网
    上网就是客户端向服务端发送请求,然后获取到服务端数据的过程
    你是通过url的切换实现的,url就是网址,来得到不同的内容
    ajax:在不刷新整个页面的前提下,完成了和服务端的交互,也就更新了网页里面的内容,一般都是局部更新
    应用:nba直播,文字直播,用户注册,不更新页面加载下一页数据
    ajax怎么使用?
    (1)原生js实现
    (2)jquery封装好的函数的用法

    'content-type', 'application/x-www-form-urlencoded'
    setRequestHeader
    onreadystatechange
        readyState
        status
        responseText
    
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>ajax实现</title>
    </head>
    <body>
        
    </body>
    </html>
    <script>
    // 原生的js实现ajax的技术
    // 创建对象,
    // XMLHttpRequest是高级浏览器创建ajax对象的方式
    // IE8以下的创建方式不一样,只需了解即可
    var xhr = new XMLHttpRequest()
    // 和后端进行交互,交互的方式有两种,pc端:get、post  移动端:get、post、put、delete等
    // 发送get请求 
    // 参数1:请求方式
    // 参数2:处理这个请求的文件,或者url
    // 这样就将请求发送过去了
    // xhr.open('get', 'url')
    // xhr.send()
    
    // post方式如何发送
    xhr.open('post', 'url')
    // 发送post,必须要添加这个东西
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
    // 在发送send的时候,需要将要传递的参数写进来
    xhr.send('name=狗蛋&password=123')
    
    // 服务端返回数据给你,要使用下面的代码
    // ajax在发送请求的时候,状态会改变,会触发这个事件
    xhr.onreadystatechange = function () {
        // 4是固定的,代表的意思是请求发送成功
        if (xhr.readyState == 4) {
            // 当响应也成功的时候,就可以获取数据了,去判断响应状态码  404
            if (xhr.status == 200) {
                // 获取响应的内容
                var content = xhr.responseText
                // 响应内容一般都是json格式的字符串
                // 你的工作就是解析json字符串,将内容填充到html中
                // 首先将json格式字符串转化为js对象
                var obj = JSON.parse(content)
                // var obj = eval('(' + content + ')')
            }
        }
    }
    </script>
    

    交互

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>和服务端交互</title>
    </head>
    <body>
        用户名:<input type="text" name="user" id="user">
        <br>
        会员等级:<input type="text" name="level" id="level">
        <br>
        会员余额:<input type="text" name="money" id="money">
        <br>
        会员年限:<input type="text" name="year" id="year">
        <br>
        <button id="btn">点我获取内容</button>
    </body>
    </html>
    <script>
    // 获取按钮
    var obtn = document.getElementById('btn')
    // 找到每一个input
    var ouser = document.getElementById('user')
    var olevel = document.getElementById('level')
    var omoney = document.getElementById('money')
    var oyear = document.getElementById('year')
    // 添加点击事件
    obtn.onclick = function () {
        // 和服务端交互, 创建ajax对象来交互
        var xhr = new XMLHttpRequest()
        xhr.open('get', 'ziliao0.php')
        xhr.send()
    
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    // console.log(xhr.responseText)
                    // 将其转化为js对象
                    obj = JSON.parse(xhr.responseText)
                    ouser.value = obj.name
                    olevel.value = obj.level
                    omoney.value = obj.money
                    oyear.value = obj.year
                }
            }
        }
    }
    </script>
    
    

    用户注册

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>用户注册</title>
        <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
    </head>
    <body>
        <h1>你好,世界!</h1>
        <input type="text" name="user" id="user">
        <span id="usertip"></span>
    </body>
    </html>
    <script>
    $(function () {
        $('#user').blur(function () {
            // 通过ajax将内容传递给服务端,服务端判断之后,给你个状态,你再去对应的修改你的内容
            $.ajax({
                type: "POST",
                url: "zhuce.php",
                data: "name=" + $(this).val(),
                success: function(msg){
                    // msg就是服务端给你的内容
                    var obj = JSON.parse(msg)
                    if (obj.state == 1) {
                        $('#usertip').html('√').css('backgroundColor', 'green')
                    } else {
                        $('#usertip').html('该用户已经注册').css('backgroundColor', 'red')
                    }
                }
            });
        })
    })
    </script>
    

    相关文章

      网友评论

        本文标题:ajax

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