ajax学习笔记

1、get

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset = "utf-8">
        <meta name="viewpoint" content="width=device-width,initial-scale=1.0"> 
        <title>Document</title>    
    </head>
    <body>
        <button onclick="sendMsg()">发送请求</button>
        <div></div>
        <script>
            function sendMsg()
            {
                //1.创建一个XMLHTTPRequesrt对象
                var xhr = new XMLHttpRequest();
                //2.调用open方法打开连接
                //open方法有三个:请求的method,请求的url,是否异步(默认异步true)
                xhr.open('get','./data.php?id=1')
                //3.发送请求
                xhr.send()
                //4.监听状态的改变
                xhr.onreadystatechange = function()
                {
                    //判断状态值,0~4这5种状态,4代表完成
                    if(xhr.readyState == 4)
                    {
                        //判断状态码
                        if(xhr.status == 200)
                        {
                            var resp = JSON.parse(xhr.responseText)
                            console.log(resp)
                            document.querySelector('div').innerHTML = `
                                <h2>编号:${resp.id}</h2>
                                <h2>标题:${resp.title}</h2>
                            ` 
                        }
                    }
                }
            }
        </script>
    </body>
</html>
<?php
    $id = $_GET['id'];
    //echo 'hello ajax';
    echo json_encode(array('id'=>$id,'title'=>'hello'));
?>

2、post

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset = "utf-8">
        <meta name="viewpoint" content="width=device-width,initial-scale=1.0"> 
        <title>Document</title>    
    </head>
    <body>
        <button onclick="sendMsg()">发送请求</button>
        <div></div>
        <script>
            function sendMsg()
            {
              var xhr = new XMLHttpRequest();
              //这里method传post
              xhr.open('post','./datapost.php')
              //设置请求头的content-type
              xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
              xhr.send('name=zhangsan&age=18')
              xhr.onreadystatechange = function()
              {
                  if(xhr.readyState === 4)
                  {
                      if(xhr.status === 200)
                      {
                          var resp = JSON.parse(xhr.responseText)
                          console.log(resp)
                          document.querySelector('div').innerHTML = `
                                <h2>姓名:${resp.name}</h2>
                                <h2>年龄:${resp.age}</h2>
                                <h2>money:${resp.money}</h2>
                          `
                      }
                  }
              }
            }
        </script>
    </body>
</html>
<?php
    $name = $_POST['name'];
    $age = $_POST['age'];
    // echo 'hello ajax';
    echo json_encode(array(
        "name" => $name,
        "age" => $age,
        "money" => 9999999
    ));
?>

3、合并

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset = "utf-8">
        <meta name="viewpoint" content="width=device-width,initial-scale=1.0"> 
        <script src="./util.js"></script>
        <title>Document</title>    
    </head>
    <body>
        <button onclick="sendMsg()">发送请求</button>
        <script>
            function sendMsg()
            {
                // util.get('./data3.php',{id:3,title:'lisi'},function(resp){console.log(resp)},true)
                // util.post('./data32.php',{id:3,title:'lisi'},function(resp){console.log(resp)},true)
                util.ajax({
                    method:'get',
                    url:'./data3.php',
                    query:{id:3,title:'wangwu'},
                    callback:function(resp){console.log(resp)},
                    isJson:true
                })
            }
           
        </script>
    </body>
</html>
ajax

var util = {
    get: function (url, query, callback, isJson) {
        //如果有参数,先把参数凭借再url后面
        if (query) {
            url += '?'
            for (var key in query) {
                url += `${key}=${query[key]}&`
            }
            //去除多余得&符号
            url = url.slice(0, -1)
        }
        var xhr = new XMLHttpRequest
        xhr.open('get', url)
        xhr.send()
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    var res = isJson ? JSON.parse(xhr.responseText) : xhr.responseText
                    callback(res)
                }
            }
        }
    },
    post: function (url, query, callback, isJson) {
        //如果有参数,把参数拼接起来
        var str = ''
        if (query) {
            for (var key in query) {
                str += `${key}=${query[key]}&`
            }
            //去除多余得&符号
            str = str.slice(0, -1)
        }
        var xhr = new XMLHttpRequest
        xhr.open('post', url)
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
        xhr.send(str)
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    var res = isJson ? JSON.parse(xhr.responseText) : xhr.responseText
                    callback(res)
                }
            }
        }
    },
    // params:object :{method,url,query,calllback,isJson}
    ajax: function (params) {
        var xhr = new XMLHttpRequest()
        if (params.method.toLowerCase() === 'get') {
            if (params.query) {
                params.url += '?'
                for (var key in params.query) {
                    params.url += `${key}=${params.query[key]}&`
                }
                params.url = params.url.slice(0, -1)
            } 
            xhr.open('get', params.url)
            xhr.send()
        } else {
            //post
            var str = ''
            if (params.query) {
                for (var key in params.query) {
                    str += `${key}=${params.query[key]}&`
                }
                str = str.slice(0, -1)
            }
            xhr.open('post', params.url)
            
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
            xhr.send(str)
        }
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    var resp = params.isJson ? JSON.parse(xhr.responseText) : xhr.responseText
                    params.callback(resp)
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于学习Ajax,我可以为您提供一些学习笔记。以下是一份简要的Ajax学习笔记,希望对您有所帮助: 1. 什么是Ajax? - Ajax全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是一种用于创建交互式Web应用程序的技术。 - 它通过在后台与服务器进行数据交换,实现在不刷新整个页面的情况下更新部分页面内容。 2. Ajax的优点: - 异步处理:可以在后台发送和接收数据,而无需刷新整个页面。 - 提高用户体验:通过部分更新页面内容,可以提供更快的响应时间和更流畅的用户体验。 - 减轻服务器负担:只更新需要的部分内容,减少了不必要的数据传输和服务器负载。 3. Ajax的基本原理: - 使用XMLHttpRequest对象向服务器发送请求,并接收响应。 - 通过JavaScript在前端处理响应数据。 - 更新页面内容,以显示最新的数据。 4. Ajax的核心技术: - XMLHttpRequest对象:用于与服务器进行数据交换。 - JavaScript:用于处理响应数据和更新页面内容。 - XML或JSON:用于传输数据格式。 5. Ajax的使用步骤: - 创建XMLHttpRequest对象。 - 定义请求类型、URL和是否异步。 - 发送请求并接收响应。 - 处理响应数据并更新页面内容。 6. 常见的Ajax框架和库: - jQuery:一个流行的JavaScript库,提供了简化Ajax开发的方法和函数。 - Axios:一个基于Promise的HTTP客户端,用于浏览器和Node.js。 - Fetch API:一种用于发送和接收网络请求的新标准。 这只是Ajax学习的一些基本概念和步骤,您可以进一步深入学习Ajax的相关知识和实践。希望这些笔记对您有所帮助!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值