[ Day 21 ] - 认识 JS 原生写法处理 AJAX

JS 原生写法处理 AJAX

XMLHttpRequest

透过建立一个XMLHttpRequest物件,开启一个 URL 并发送请求,此为较为传统的方式
范例如下

// 建立一个 XMLHttpRequest 物件
let xhr = new XMLHttpRequest();

// 使用 open() 发送请求,并且需要带入三个参数
// 参数分别是 HTTP方法、处理请求的网址、取得资料的方式(同步/非同步)
xhr.open('GET','URL',true);

// 送出请求,小括号内可带入其他参数进行传送
xhr.send();

// 从服务器取得资料後的处理
xmr.onload = function() {
  // 处理回传资料的程序码
  console.log('成功');
};
xhr.onerror = function (err) {
  console.log('错误', err)
};

Fetch

直接进入范例!

使用 Fetch 发送请求范例如下

fetch('发送请求的URL')
  .then(function(response) {
    // 成功结果的处理
  }).catch(function(err) {
    // 错误结果的处理
  })

使用 Fetch 发出请求,会回传一个包含 response 物件的 promise

以下范例使用 https://randomuser.me/api/

fetch('https://randomuser.me/api/')
  .then(function(response) {
    console.log(response);
  }).catch(function(err) {
    console.log('错误', err);
  })

执行结果

如何从 response 取得需要的资料

回传的 response 可以透过以下几种方式取得资料

  • arrayBuffer():将资料转成二进制的资料
  • blob():将资料转成 blob 物件
  • formData():将资料转成 formData 物件
  • json():将资料解析为 JSON
  • text():将资料转成 text 格式

将 response 转成 JSON 格式

fetch('https://randomuser.me/api/')
  .then(function(response) {
    return response.json();
  })
  .then(function(myJson) {
  console.log(myJson);
  })
  .catch(function(err) {
    console.log('错误', err);
  })

执行结果

参考资料及学习资源

  • 0 陷阱!0 误解!8 天重新认识 JavaScript!
  • JavaScript 指南
  • 六角学院 - JavaScript 必修篇 - 前端修练全攻略
  • Using Fetch

本日小结

怎麽有点越级了...我在写什麽,说好的初心者解任务呢
後面有几会再来进阶介绍 fetch 的用法,让我花一点时间研究一下
这是我的学习纪录,我们下次见~


<<:  Day 21 单向资料流

>>:  [day 21 ] SwiftUI Essentials - Building Lists and Navigation

Day 30 消费者每天在变,广告没有尽头

经过 29 天的探讨,已经慢慢建立概念了无论是关键字或是广告的文案,基本上无论 Google Ads...

Angular 深入浅出三十天:表单与测试 Day26 - 进阶表单开发技巧 - 自订验证器

之前在开发表单的时候,我们都是使用 Angular 所提供的验证器来验证表单栏位里的值是否符合我们...

2.4.1 Design System - Avatar元件

年龄这件无关紧要的小事 从小我就很讨厌任何因为年纪而设下的规范 尊重长辈绝对是因为他做人处事很值得...

Day 9 - Laravel 8.0的Error Handling

不管是预期或非预期,程序往往会发生一些错误,我们不希望使用者Call API或浏览网页的时候发生错误...

企划实现(21)

接续上篇继续提到关於有限公司以及股份有限公司的差别。 有限公司以及股份有限公司除了制度会有差别外,责...