后端程序员的前后端交互核心-Ajax

简介: 后端程序员的前后端交互核心-Ajax

后端程序员的前后端交互核心-AJax

1 Ajax概述

  • AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
  • AJAX = Asynchronous异步 JavaScript and XML。
  • AJAX 是一种用于创建快速动态网页的技术。
  • 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
  • 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页。

2 Ajax异步请求原理

同步请求

同步请求

image.png

异步请求

image.png

3 Ajax开发步骤

Get请求携带参数,直接拼接在url后面

function sendGet(){
    //同步请求
    //location.href = "/jsAjax?name=123&123";

    //1、创建XMLHTTPRequest对象
    var xhr = new XMLHttpRequest();

    //2、设置异步请求的对象的URL地址
    //参数1:请求方式  参数:请求的URL地址 参数3:是否异步请求(默认true)
    xhr.open("GET","/jsAjax?name=cxk&age=21");

    //3、通过异步请求对象发送异步请求
    xhr.send();

    //4、监听异步请求的状态
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){ //异步请求成功,且响应数据了。
            //数据渲染
            //xhr.responseText这个数据是一个json字符串。
            var json1 = xhr.responseText;
            //将json格式的字符串转成json对象
            var json = JSON.parse(json1);

            console.log(json.code);
            console.log(json.msg);
        }
    }
}

POST请求携带参数

function sendPost(){
    //1、创建XMLHTTPRequest对象
    var xhr = new XMLHttpRequest();

    //2、设置异步请求的对象的URL地址
    //参数1:请求方式  参数:请求的URL地址 参数3:是否异步请求(默认true)
    xhr.open("POST","/jsAjax");

    //注意:如果使用POST请求携带数据,那么需要设置请求头
    xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")

    //3、通过异步请求对象发送异步请求如果请求方式为POST那么请求参数要放在send方法中。(仅限于POST请求)
    xhr.send("name=cxk&age=20");

    //4、监听异步请求的状态
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){ //异步请求成功,且响应数据了。
            //数据渲染
            console.log(xhr.responseText)
        }
    }
}

4 创建XMLHttpRequest对象

为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xhr;
if (window.XMLHttpRequest)
{
    //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
    xhr=new XMLHttpRequest();
}
else
{
    // IE6, IE5 浏览器执行代码
    xhr=new ActiveXObject("Microsoft.XMLHTTP");
}


5 XMLHttpRequest请求

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

image.png

6 readyState

  • 每当 readyState 改变时,就会触发 onreadystatechange 事件。
  • 在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
  • readyState 属性存有 XMLHttpRequest 的状态信息。
  • 当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
  • 下面是 XMLHttpRequest 对象的三个重要的属性:
属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。0: 请求未初始化1: 服务器连接已建立2: 请求已接收3: 请求处理中4: 请求已完成,且响应已就绪
status 例:200: “OK” ;404: 未找到页面

7 XMLHttpRequest响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

属性 描述
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据(不重要)


目录
相关文章
|
1月前
|
人工智能 算法 Java
后端程序员逆袭之路:巧用 AI 工具,拿下高薪 offer
在技术职场中,后端程序员面临诸多挑战,如复杂业务逻辑、繁琐代码编写与调试及持续学习压力。然而,AI 工具的兴起为后端开发带来了全新机遇。智能代码生成工具如飞算 JavaAI 可高效完成需求分析、设计与代码生成;智能调试工具如 CodeGuru 能快速定位问题;知识学习工具如 ChatGPT 助力技术提升。借助这些工具,后端程序员不仅能显著提高项目质量和效率,还能展示技术前瞻性与学习能力,拓展技能边界,从而在求职市场中脱颖而出,顺利拿下高薪 offer。
|
3月前
|
人工智能 自然语言处理 Java
IDEA + 通义灵码AI程序员:快速构建DDD后端工程模板
本文介绍如何使用 IntelliJ IDEA 和阿里云的通义灵码 AI 程序员,快速搭建基于 DDD 领域驱动设计的后端工程模板。通过安装和配置 IDEA、JDK、Maven 及通义灵码插件,用户可以借助 AI 自动生成项目结构和代码。然而,测试发现 AI 生成的代码存在依赖问题,需手动修正才能成功运行。最终,项目包括 Spring Boot、Maven 和 Deepseek API 集成,可调用大模型进行预测。尽管 AI 工具提高了开发效率,但目前仍需人工干预确保项目顺利运行。
409 62
 IDEA + 通义灵码AI程序员:快速构建DDD后端工程模板
|
3月前
|
监控 前端开发 Java
构建高效Java后端与前端交互的定时任务调度系统
通过以上步骤,我们构建了一个高效的Java后端与前端交互的定时任务调度系统。该系统使用Spring Boot作为后端框架,Quartz作为任务调度器,并通过前端界面实现用户交互。此系统可以应用于各种需要定时任务调度的业务场景,如数据同步、报告生成和系统监控等。
101 9
|
8月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
184 2
|
3月前
|
人工智能 自然语言处理 Java
IDEA + 通义灵码 AI 程序员:快速构建 DDD 后端工程模板
本文介绍了如何利用 IntelliJ IDEA 编辑器和阿里云的通义灵码 AI 程序员,快速搭建一个基于 DDD 领域驱动架构的后端工程模板。
|
6月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
135 3
|
6月前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
6月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
128 1
|
7月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
91 3
|
7月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
130 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例