Ajax 学习笔记

Ajax 作用:数据异步交互
学习网站 W3school:https://www.w3school.com.cn/js/js_ajax_intro.asp

1、简介

Ajax: Asynchronous JavaScript And XML,异步的JavaScript和XML。

作用:

  • 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。
  • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。如搜索引擎搜索框。

在这里插入图片描述

同步与异步:

在这里插入图片描述

异步的好处:页面的加载和 Ajax 的请求是并行的,可实现不刷新页面更新网页。

2、原生 Ajax

原生 Ajax 获取数据的方法:

<div id="demo">
    <h1>XMLHttpRequest 对象</h1>
    <button type="button" onclick="loadDoc()">修改内容</button>
</div>
    
<script>
    function loadDoc() {
        // 1.创建 XMLHttpRequest 对象
        var xmlHttpRequest = new XMLHttpRequest();

        // 2.XMLHttpRequest 对象向 web 服务器发送异步请求
        xmlHttpRequest.open("GET", "http://hmajax.itheima.net/api/province", true);
        xmlHttpRequest.send();

         // 3.获取服务器响应数据
        xmlHttpRequest.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
            document.getElementById("demo").innerHTML = this.responseText;
            }
        };
    }
</script>

代码中具体如何创建 XMLHttpRequest 对象、请求和响应可以参考学习网站W3school:https://www.w3school.com.cn/js/js_ajax_intro.asp

3、Axios

Axios对原生的Ajax进行了封装,简化书写,快速开发。
Axios 官网: https://www.axios-http.cn/

栗子:(利用 Axios 获取数据,再利用 Vue 渲染数据)

<div id="app">
    <input type="button" value="获取数据GET" onclick="get()">
    <input type="button" value="获取数据POST" onclick="post()">
    <ul v-for="(province, index) in provinces">
        <li>{{ province }}</li>
    </ul>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

<script>   
    // get 请求
    function get() {
        axios.get("http://hmajax.itheima.net/api/province").then((result) => {
            console.log(result.data);
        });
    }

    // post 请求
    function post() {
        axios.post("https://httpbin.org/post").then((result) => {
            console.log(result.data);
        });
    }

    // 结合 Vue 的实例
    const app = new Vue({
        el: "#app",
        data: {
            provinces: []
        },
        mounted() {
            axios.get("http://hmajax.itheima.net/api/province").then((result) => {
            this.provinces = result.data.list;
            });
        }
    })
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值