Ajax&Fetch学习笔记 08、Fetch

简介: Ajax&Fetch学习笔记 08、Fetch

一、认识Fetch


1.1、介绍Fetch


Fetch也是前后端通信的一种方式。


优点:Fetch是Ajax(XMLHttpRequest)的一种替代方案,默认就是基于Promise。


如今不使用Fetch原因:①兼容性问题。②没有abort、timeout机制。③不能通过请求头来携带数据。(只能自己在url上加),还没有很完善所以还在使用ajax。



1.2、Fetch初次使用(查看response)


我们来看一下response的结果内容:


<script>
    const url = "https://www.imooc.com/api/http/search/suggest?word=ajax";  //后端对于application/json没有处理,只响应application/x-www-form-urlencoded的get请求
    console.log(fetch);
    // 发送请求
    fetch(url)
        .then(response => {
        console.log(response);
    }).catch(error => {
        console.log(error);
    })
</script>




二、Fetch使用


2.1、使用Fetch()来得到响应数据(默认GET请求)


使用Fetch来发送请求响应数据:


data.json
{
    "code": 200,
    "data": {
        "name": "changlu",
        "age": 18
    }
}


index.html


<script>
    //传入url,默认为GET请求
    fetch('./data.json').then(function (response) {
        console.log(response);
        //若是ok为true,表示可以读取数据,就不需要去判断HTTP状态码了
        if (response.ok) {
            return response.json();//必须要通过调用json()方法得到一个Promise,紧接着继续执行then()方法就能够拿到响应数据
        }
    }).then(data => {  //拿到parse()后的对象
        console.log(data);
    }).catch(function (error) {
        console.log(error);
    });
</script>


注意:其中的response.json()只能调用一次,否则会报错!




2.2、Fetch()中的第二个参数(配置fetch)


配置fetch内容是写在一个{}中的,写于第二个参数:


{
    body: JSON.stringify({username:'changlu'}) //body就是请求体,能够传递字符串以及FormData
    headers: { //请求头
        'Content-Type': 'applicaiton/json'  //这里还可以设置其他类型
    },
    mode: 'cors',//跨域
    credentials: 'include'  //跨域携带cookie
}


说明:


1、若是你设置指定的body为字符串时,可能是key=value&key1=value1或json字符串都要记得设置指定的Content-Type;若是传递FormData的话可以不设置,其默认会设置为


示例:测试FormData作为请求体


<script>
    // const url = "https://www.imooc.com/api/http/json/search/suggest?word=ajax";  //后端对于application/json处理过的接口
    const url = "https://www.imooc.com/api/http/search/suggest?word=ajax";  //后端对于application/json没有处理,只响应application/x-www-form-urlencoded的get请求
    console.log(fetch);
    // 发送请求
    const formdata = new FormData();
    formdata.append("username", "changlu");
    formdata.append("age", 18);
    // 发送请求
    fetch(url, {
        method: 'POST',
        body: formdata   //fetch默认会设置Content-Type: multipart/form-data;
    })
        .then(response => {
        if (response.ok) {
            return response.json();
        }
    }).then(response => {
        console.log(response);
    })
        .catch(error => {
        console.log(error);
    })
</script>






可以看到内容类型默认设置multpart/form-data,你可以进行额外其他设置。



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