JavaScript Fetch API

Fetch API 接口允许 web 浏览器向 web 服务器发出 HTTP 请求。

不在需要 XMLHttpRequest 了。


浏览器支持

表中的数字指定了第一个完全支持 Web Worker 的浏览器版本:


Chrome 42Edge 14Firefox 40Safari 10.1Opera 29
2015 年 4 月2016 年 8 月2015 年 8 月2017 年 5 月2015 年 4 月

Fetch API 实例

下面的示例获取一个文件并显示内容:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p id="demo">获取文件以更改此文本。</p>
  5. <script>
  6. let file = "/example/js/fetch_info.txt"
  7. fetch (file)
  8. .then(x => x.text())
  9. .then(y => document.getElementById("demo").innerHTML = y);
  10. </script>
  11. </body>
  12. </html>

由于 Fetch 是基于 async 和 await 的,因此上面的示例可能更容易理解:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p id="demo">获取文件以更改此文本。</p>
  5. <script>
  6. getText("/example/js/fetch_info.txt");
  7. async function getText(file) {
  8. let x = await fetch(file);
  9. let y = await x.text();
  10. document.getElementById("demo").innerHTML = y;
  11. }
  12. </script>
  13. </body>
  14. </html>

或者这样更好:使用可理解的名称,而不是 x 和 y:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p id="demo">获取文件以更改此文本。</p>
  5. <script>
  6. getText("/example/js/fetch_info.txt");
  7. async function getText(file) {
  8. let myObject = await fetch(file);
  9. let myText = await myObject.text();
  10. document.getElementById("demo").innerHTML = myText;
  11. }
  12. </script>
  13. </body>
  14. </html>
注意:如果出现乱码,请修改字符集为 uft-8

分类导航