AJAX异步请求JSON格式数据

本文深入探讨了AJAX异步请求的工作原理,包括原生JavaScript和jQuery的实现方式,以及异步与同步请求的区别。同时,详细介绍了JSON数据格式,并通过实例展示了如何处理JSON响应数据。此外,还讨论了AJAX在实际应用中的场景,如检查用户名占用和搜索自动补全,并触及了跨域问题。
摘要由CSDN通过智能技术生成

AJAX异步请求JSON格式数据

AJAX异步请求

A: 异步Asynchronous

J: JavaScript

A: And

X: XML

同步请求: 客户端请求到服务器,如果服务器没有响应,客户端只能等待,卡死

异步请求: 客户端请求到服务器,如果服务器没有响应,客户可是自由活动

AJAX的运行原理

浏览器内置了AJAX的引擎

在这里插入图片描述

原生态的JavaScript实现异步请求

实现步骤

  • 获取AJAX引擎
  • 设置回调函数
    • 自定义函数,服务器响应成功后,自动调用函数
  • 设置请求服务器路径
  • 提交
<script type="text/javascript">
    /**
     * 原生态的JavaScript实现AJAX异步请求
     */
    function fn() {
   
        //获取AJAX引擎对象,XMLHttpRequest
        var xmlhttp = new XMLHttpRequest();
        //对象调用了事件,AJAX引擎的状态变化
        xmlhttp.onreadystatechange=function()
        {
   
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
   
                //xmlhttp.responseText: AJAX引擎对象属性,服务器响应回来的文本数据
                document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
            }
        }
        //设置服务器路径
        xmlhttp.open("GET","/WEB11/js_ajax");
        //提交请求
        xmlhttp.send();
    }
</script>

jQuery的AJAX请求

$.get()函数

  • 参数解释
    • url: 提交的服务器地址
    • data:提交到服务器的数据 k=v&k=v
    • 回调函数:服务器响应成功,自动调用函数
    • type: 服务器响应回来的数据类型 ,text, json
<script type="text/javascript">
    function fn() {
   
        /**
         *  jQuery中的函数get异步请求
         */
        $.get(
            //传递服务器路径
            "/web11/jquery_get",
            //传递提交到服务器的参数
            "username=zhangsan&age=20",
            //回调函数,服务器响应成功,调用函数
            //服务器响应回来的数据,传递到函数的参数
            function (data) {
   
                alert(data);
            },
            //服务器响应的数据格式
            "text"
        );
    }
</script>

$.post()函数

<script type="text/javascript">
    function fn() {
   
        /**
         *  jQuery中的函数post异步请求
         */
        $.post(
            //传递服务器路径
            "/web11/jquery_post",
            //传递提交到服务器的参数
            "username=zhangsan&age=20",
            //回调函数,服务器响应成功,调用函数
            //服务器响应回来的数据,传递到函数的参数
            function (data) {
   
                alert(data);
            },
            //服务器响应的数据格式
            "text"
        );
    }
</script>

$.ajax()函数

jQuery的异步请求函数 ajax(), 他是get和post的底层函数

使用get或者post的时候,调用的底层都是ajax函数

上层函数: 代码简单,但可以控制内容少

底层函数: 代码量多,灵活性很大,可以控制的内容更多

  • 函数的参数
    • url:服务器请求地址
    • async: 异步请求或者同步请求,默认是true,表示异步
    • data:请求到服务器参数 k=v
    • dataType:接收服务器响应的数据格式 text json
    • error:服务器响应失败的回调函数
    • success:服务器响应成功的回调函数
    • type:get请求或者是post
<script type="text/javascript">
    function fn() {
   
        /**
         * jQuery的底层函数ajax实现异步请求
         * $.ajax({
         *    k:v,
         *    k:v
         * })
         */
        $.ajax({
   
            //服务器路径
            url:"/WEB11/jquery_ajax",
            //提交服务器的数据
            data:"username=zhangsan&age=20",
            //响应失败的回调函数
            error:function()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值