zoukankan      html  css  js  c++  java
  • Ajax学习笔记(二)

    一、Ajax请求——GET

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <h1>Ajax 发送get 请求</h1>
    <input type="button" value="发送get_ajax请求" id='btnAjax'>
    
    <script type="text/javascript">
        // 绑定点击事件
        document.querySelector('#btnAjax').onclick = function () {
            // 发送ajax 请求 需要 五步
    
            // (1)创建异步对象
            var xmlhttp = new XMLHttpRequest();
    
            // (2)设置请求的参数。包括:请求的方法、请求的url。
            xmlhttp.open('GET', '001.php');
    
            // (3)发送请求
            xmlhttp.send();
    
            //(4)注册事件。 onreadystatechange事件,状态改变时就会调用。
            //如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。
            xmlhttp.onreadystatechange = function () {
                // 为了保证 数据 完整返回,我们一般会判断 两个值
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    // 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的
                    // 5.在注册的事件中 获取 返回的 内容 并修改页面的显示
                    console.log('数据返回成功');
    
                    // 数据是保存在 异步对象的 属性中
                    console.log(xmlhttp.responseText);
    
                    // 修改页面的显示
                    document.querySelector('h1').innerHTML = xmlhttp.responseText;
                }
            }
        }
    </script>
    </body>
    </html>

    001.php

    <?php
    echo 'helloworld';
    ?>

    二、Ajax请求——POST

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div id="loading"></div>
        <table>
            <tr>
                <td>用户名</td>
                <td><input type="text" id="username"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="password" id="password"></td>
            </tr>
            <tr>
                <td></td>
                <td><button id="btn">登录</button></td>
            </tr>
        </table>
     
        <script type="text/javascript">
            var btn = document.getElementById('btn')
            var textUsername = document.getElementById('username')
            var textPassword = document.getElementById('password')
     
            btn.onclick = function(){
                var username = textUsername.value
                var password = textPassword.value
     
                var xhr = new XMLHttpRequest()
                xhr.open('POST','03.php')
                // 以POST请求方式请求03.php
                
                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
                // 通过post方式发送urlencoded格式请求体,必须设置相应的请求头
     
                xhr.send(`username=${username}&password=${password}`)
                // es6新语法,模板字符串,通过esc键下面一个键的反引号,括起来的。注意这里面有固定格式,千万别有空格
     
                xhr.onreadystatechange = function(){
                    if(this.readyState == 4){
                       console.log(this.responseText);
                    } 
                }
            }
        </script>
    </body>
    </html>

    03.php

    <?php 
      
      if(empty($_POST['username']) || empty($_POST['password'])){
          exit('请输入完整信息');
      }
     
      $username = $_POST['username'];
      $password = $_POST['password'];
     
      if($username === 'wzx' && $password === '123456'){
          exit('登录成功');
      }
     
      exit('输入信息有误');
     
    ?>

    三 Ajax 请求解析JSON

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
             <h1>获取 json 数据</h1>
        <input type="button"  value="获取json" id='btnJson'>
        
        <script type="text/javascript">
        // 获取的是一个 如果要获取多个
        // document.querySelectorAll(selector)
        document.querySelector("#btnJson").onclick = function () {
            var ajax = new XMLHttpRequest();
    
            ajax.open('get','myJson.php');
    
            ajax.send();
    
            ajax.onreadystatechange = function () {
                if (ajax.readyState==4&&ajax.status==200) {
                    // json 字符串 是字符串 所以我们可以 通过  responseText获取
                    console.log(ajax.responseText);
    
                    // 转化为 js对象
                    var jsObj = JSON.parse(ajax.responseText);
    
                    console.log(jsObj);
    
                    // 拼接ul s
                    var str = '';
    
                    str+='<ul>';
                    str+='<li>'+jsObj.name+'</li>';
                    str+='<li>'+jsObj.skill+'</li>';
                    str+='<li>'+jsObj.job+'</li>';
                    str+='</ul>';
    
                    // 设置到界面上
    
                    document.body.innerHTML = str;
                }
            }
        }
    </script>
        </body>
    </html>

    Person.json

    {
      "name":  "漩涡鸣人""skill": "影分身""job":  "忍着" ,
        
    }

    myJson.php

    <?php
    // 读取json文件 并返回即可
        echo  file_get_contents('Person.json');
    ?>
  • 相关阅读:
    2018陕西省高三教学质量检测三参考答案图片版
    2018年宝鸡市三检理科数学题目解答
    2018年宝鸡市三检文科数学题目解答
    构建flutter环境并实现属于我们的hello world
    关于react-native项目在MacBookPro环境下打包成IPA
    关于react-native在MacBookPro环境下的安装
    react-native---rn中的修饰组件(TouchableHightlight、TouchableOpacity、TouchableNativeFeedback等)
    px转换成bp单位的工具函数
    跟我一起使用android Studio打包react-native项目的APK
    undefined is not an object(evaluating '_react3.default.PropTypes.shape)
  • 原文地址:https://www.cnblogs.com/smile-xin/p/11386339.html
Copyright © 2011-2022 走看看