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>


目录
相关文章
|
3月前
|
JavaScript 前端开发 开发者
Nest.js控制器深度解析:路由与请求处理的高级特性
以上就是对 NestJS 控制层高级特性深度解析:从基本概念到异步支持再到更复杂场景下拦截其与管道等功能性组件运用都有所涉及,希望能够帮助开发者更好地理解和运用 NestJS 进行高效开发工作。
330 15
|
6月前
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
626 65
|
3月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
7月前
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1153 58
|
XML 前端开发 JavaScript
|
9月前
|
Web App开发 数据采集 前端开发
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
|
9月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
9月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript
Node.js GET/POST请求
10月更文挑战第6天
172 2
Node.js GET/POST请求