Ajax&Fetch学习笔记 01、ajax(一)

简介: Ajax&Fetch学习笔记 01、ajax(一)

一、认识Ajax


1.1、介绍Ajax


Ajax(Asyncchronous JavaScript and XML):异步JavaScript和XML的简写。


Ajax中的异步:可以异步地向服务器发送请求,在等待响应的过程中,不会阻塞当前页面,浏览器可以做自己的事情。直到成功响应后,浏览器才会开始处理响应数据。

传输的内容:原本前后端进行传输的是XML(可扩展标记语言),如今不怎么使用了,比较常用的就是JSON.


目的:在不重新加载整个页面的情况下,对页面的某个部分进行更新!



1.2、Ajax的基本使用(含测试)


四步骤如下:


<script>
    const url = "https://www.imooc.com/api/http/search/suggest?words=js";
    //1、创建xhr对象
    const xhr = new XMLHttpRequest();
    //4、监听事件,处理响应(为了更好的兼容性写在open()方法前)
    //onreadystatechange:监听事件。也可以使用写成xhr.addEventLisener('readystatechange',()=>{},false)
    xhr.onreadystatechange = () => {
        console.log(xhr.readyState);
        //xhr.readyState监听状态有四个,监听开始到结束该函数会执行4次,直到4表示执行完,这里直接过滤掉前面三种状态
        if (xhr.readyState != 4) return;
        //若是状态码为200-300之间表示响应正常或者说是重定向(未修改)
        if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
            //打印响应的内容(字符串形式)
            console.log(xhr.responseText);
        }
    }
    //2、准备发送请求(参数1:请求方式。参数2:请求地址。参数3:是否异步,这里为true)
    //请求方式如:GET、POST、PUT、delete
    xhr.open("GET", url, true);
    //3、发送请求,参数为请求体携带的数据
    xhr.send(null);
</script>



补充:


1、其他变量,如xhr.statusText表示HTTP状态说明。


2、readyState的五个状态(状态0不会调用函数)。


0:未初始化,尚未调用open()
1:启动。已经调用open(),但尚未调用send()
2:发送,已经调用send(),但尚未接收到响应
3、接收,已经接收到部分响应数据。
4、完成,已经接收到全部响应数据,而且已经可以在浏览器中使用了!


3、对于readystatechange事件最好放在open()方法之前来进行定义!!!



二、请求方式(含携带数据与数据编码)


2.1、GET请求


携带数据


GET请求不能通过请求体来携带数据,但是可以通过请求头来携带。


说明:对于GET请求,在send()中填写参数实际是无效的,不会将请求参数传递出去。


携带方式:直接在请求路径后面写?key=value&key1=value1来表示请求参数。



或者你还可以使用form表单提交方式,点击提交按钮会自动拼接form表单中带有name的表单元素到url请求路径中发送请求。


数据编码


为什么要进行编码?


若是想要传递请求参数为中文的,尽量对其进行编码,否则后端可能会无法解析(不同的浏览器也会对中文进行编码,不过编码方式可能会不同。所以我们对于中文字体尽量自己去编码来进行传递请求参数)。

如何编码?


使用encodeURIComponent()API来进行编码。解码为:decodeURIComponent
//直接对请求参数来进行编码即可!!!
const url = `https://www.imooc.com/api/http/search/suggest?words=${encodeURIComponent('学习')}`;




2.2、POST


携带数据


如何携带数据?


写在请求路径后。

对于Ajax发送POST请求,可以将指定的请求参数写在send()方法中作为参数放置在请求体里。

携带方式:


//① 直接写在请求路径后
const url = `https://www.imooc.com/api/http/search/suggest?words=${encodeURIComponent('学习')}`;
.......
//2、准备发送请求
xhr.open("POST", url, true);
//3、发送请求,参数为请求体携带的数据
//② 写在send()方法中,通过指定格式携带。
//第一种形式是key=value&key1=value1;第二种形式就是将对象转换为json字符串进行传递,后端来进行转换为对象。
xhr.send("username=changlu&sex=男");


其他方式也是通过form表单来进行POST请求,表单元素信息都是通过请求体来携带传输。



数据编码


同样也是使用encodeURIComponent()来进行编码。


示例:


xhr.send(`username=changlu&sex=${encodeURIComponent('男')}`);




相关文章
|
2月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
86 2
|
13天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
28 1
|
1月前
|
前端开发 API 开发者
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
37 4
|
1月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
50 2
|
1月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
42 3
|
2月前
|
JSON 资源调度 JavaScript
Vue框架中Ajax请求的实现方式:使用axios库或fetch API
选择 `axios`还是 `fetch`取决于项目需求和个人偏好。`axios`提供了更丰富的API和更灵活的错误处理方式,适用于需要复杂请求配置的场景。而 `fetch`作为现代浏览器的原生API,使用起来更为简洁,但在旧浏览器兼容性和某些高级特性上可能略显不足。无论选择哪种方式,它们都能有效地在Vue应用中实现Ajax请求的功能。
42 4
|
1月前
|
前端开发 API 数据格式
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
在Web开发领域,技术的快速迭代推动着应用不断进化。传统前后端交互方式已无法满足现代Web应用对高效、实时性和用户体验的需求。AJAX作为异步通信的先驱,使页面无需刷新即可更新部分内容,显著提升用户体验;尽管XML曾是其主要数据格式,但如今JSON已成为主流。Fetch API则以其简洁、灵活的特点成为AJAX的现代替代品,基于Promises的异步请求让开发更加高效。与此同时,Python后端凭借高效稳定和丰富的库支持,成为众多开发者的首选,无论是轻量级的Flask还是全功能的Django,都能为Web应用提供强大的支撑。
37 0
|
1月前
|
XML 前端开发 API
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
26 0
|
1月前
|
前端开发 JavaScript API
告别繁琐!AJAX与Fetch API,让你的前后端沟通畅通无阻,项目效率飙升!
在Web开发中,前后端的顺畅沟通至关重要。传统方法常需频繁刷新页面,影响体验与效率。AJAX和Fetch API的出现简化了这一过程。AJAX利用XMLHttpRequest实现局部页面更新,提升用户体验;Fetch API则以更简洁的语法和强大的功能,进一步优化异步请求处理。两者均能显著提高开发效率,简化代码结构,让项目迭代更快速。拥抱这些技术,让Web开发之路更加顺畅。
26 0
|
3月前
|
XML 前端开发 JavaScript
Ajax、Fetch、Axios
Ajax、Fetch、Axios
78 25