Javascript-Ajax数据请求

简介: Javascript-Ajax数据请求

Ajax数据请求


Ajax是一种用于创建交互式Web应用程序的技术,它允许在不刷新整个页面的情况下向服务器发送请求并获取响应。Ajax的全称是Asynchronous JavaScript and XML(异步JavaScript和XML),尽管XML在现代的Ajax应用中并不是必需的,常见的替代格式有JSON。


Ajax通过使用JavaScript与服务器进行异步通信,可以实现以下功能:


异步加载数据:在用户与页面交互的同时,通过Ajax从服务器请求数据,并将数据动态更新到页面上,而不需要刷新整个页面。

动态更新内容:通过Ajax,可以根据用户的操作或事件,仅更新部分页面的内容,而不需要重新加载整个页面。

表单验证与提交:通过Ajax,在用户填写表单后可以在不刷新页面的情况下进行表单验证,并将表单数据发送给服务器。

提供实时反馈:通过Ajax可以实现实时数据更新,例如聊天应用中的消息实时推送功能。

加载外部数据:通过Ajax可以从服务器请求并加载外部数据,例如远程API返回的JSON数据。


    <script>
        function getStyle(obj,attr){
            return window.getComputedStyle ? getComputedStyle(obj)[attr] : obj.currentStyle[attr];
        }
        //1. 创建XMLHttpRequest对象
        // new XMLHttpRequest()
        // new ActiveXObject()
        let xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
        // alert(xhr);
        //2. 与服务器建立连接
        xhr.open('get','http://localhost:8888/test/second',true);
        //3. 发送请求
        xhr.send();
        //4. 等待响应
        xhr.onload = function(){
            let data = JSON.parse(xhr.responseText);
            console.log(data);
        }
    </script>


<script>
        // //1. 创建XMLHttpRequest对象  同步
        // let xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
        // //2. 与服务器建立连接  (同步) 
        // xhr.open('get','http://localhost:8888/test/second',true);
        // //3. 发送请求
        // xhr.send(); //同步   (等待消息-异步)
        // //4. 等待响应
        // //同步
        // xhr.onload = function(){
        //     console.log(JSON.parse(xhr.responseText));
        // }
        //异步:
        //1. 创建对象  2. 建立连接  3. 发送(同步) 4. 注册事件(同步) 响应(异步)
        //1. 创建XMLHttpRequest对象  同步
        let xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
        //2. 与服务器建立连接  (同步) 
        xhr.open('get','http://localhost:8888/test/second',false);
        //4. 等待响应
        //同步
        xhr.onload = function(){
            console.log(JSON.parse(xhr.responseText));
        }
        //3. 发送请求
        xhr.send(); //同步(等待消息-同步)
        //同步:
        //1. 创建对象  2. 与服务器建立连接  4. 注册事件 3. 发送请求  响应回数据
        //统一成: 1  2   4  3 
    </script>


Ajax中get传参

   <script>
        //https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=49055317_42_hao_pg&wd=12&fenlei=256&rsv_pq=0x83ef5202000236c9&rsv_t=be13wbQPabfT5yEnV118zeSur%2B%2FSC8d8l1oKH%2FmvvEDr54hb538gQgfQzEIF&rqlang=en&rsv_enter=1&rsv_dl=tb&rsv_sug2=0&rsv_btype=i&inputT=1136&rsv_sug4=1135
        const btn = document.querySelector('input');
        //添加事件
        btn.onclick = function(){
            //1. 创建XMLHttpRequest对象
            let xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
            //2. 与服务器建立连接
            //get请求: 'url?key=value&key=value&key=value'
            xhr.open('get','http://localhost:8888/test/third?name=树民&age=15',true);
            //4. 注册事件
            xhr.onload = function(){
                console.log(JSON.parse(xhr.responseText));
            }
            //3. 发送请求
            xhr.send();
        }
    </script>


Ajax中post传参

    <script>
        //post传参是在http协议的请求体中传递。通过send发送
        //注:在发送请求前,务必先设置请求头。
        //1. 获取页面元素
        const btn = document.querySelector('input');
        //2. 添加事件
        btn.onclick = function(){
            //1. 创建XMLHttpRequest对象
            let xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
            //2. 与服务器建立连接
            xhr.open('post','http://localhost:8888/test/fourth',true);
            //4. 注册事件
            xhr.onload = function(){
                console.log(JSON.parse(xhr.responseText));
            }
            //3. 发送请求
            //设置请求头
            //'application/x-www-form-urlencoded' : 表单格式
            //'application/json' : json格式
            xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
            xhr.send('name=张三&age=18');
        }
    </script>


目录
打赏
0
0
0
0
1
分享
相关文章
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
165 65
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Python中如何判断是否为AJAX请求
AJAX请求是Web开发中常见的异步数据交互方式,允许不重新加载页面即与服务器通信。在Python的Django和Flask框架中,判断AJAX请求可通过检查请求头中的`X-Requested-With`字段实现。Django提供`request.is_ajax()`方法,Flask则需手动检查该头部。本文详解这两种框架的实现方法,并附带代码示例,涵盖安全性、兼容性、调试及前端配合等内容,帮助开发者提升Web应用性能与用户体验。
107 0
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
182 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等