fetch是Ajax的新方法,其實類似於我們的回撥。今天我們使用Beian的API地址寫一個請求的例子
API地址:
https://dog.ceo/api/breeds/image/random複製程式碼
我們新建一個html檔案,裡面包含了大標題H1,存放請求圖片的地方div,還有請求的點選按鈕
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>dogs</title>
</head>
<body>
<h1>Doggos</h1>
<div class="doggos"> </div>
<button class="add-doggo">add-doggo</button>
<script src="./doggos.js"></script>
</body>
</html>複製程式碼
同時我們新建一個doggos.js
const DOG_URL = "https://dog.ceo/api/breeds/image/random"; //此地址是Beian的此時地址
const doggos = document.querySelector(".doggos"); //找到存放圖片的div
function addNewDoggo(){
const promise = fetch(DOG_URL); //fetch獲取請求地址
promise
.then(function(Response){
const processingPromise = Response.json();
return processingPromise;
})
.then(function(processingPromise){
const img = document.createElement("img"); //動態建立img標籤
img.src = processingPromise.message;
img.alt = "小狗狗";
doggos.appendChild(img);
});
}
document.querySelector(".add-doggo").addEventListener("click",addNewDoggo); //監聽點選事件,執行新增圖片效果
總體效果:
fetch他其實替代了XMLHttpReuest,鏈式風格也是很有魅力的,包括返回的promise。大家在以後的時候,希望還是多實用這些新出來的方法,他能夠有效的降低你的開發時間,並且能夠展現出她獨特的美