title: fetch
date: 2017-08-21 15:07:59
tags: fetch
Fetch
fetch 规范与 jQuery.ajax() 主要有两种方式的不同
- 从 fetch()返回的 Promise 将不会拒绝HTTP错误状态, 即使响应是一个 HTTP 404 或 500。相反,它会正常解决 (其中ok状态设置为false), 并且仅在网络故障时或任何阻止请求完成时,它才会拒绝。
- 默认情况下, fetch在服务端不会发送或接收任何 cookies, 如果站点依赖于维护一个用户会话,则导致未经认证的请求(要发送 cookies,必须发送凭据头)
普通fetch get img 请求
let myImage = document.querySelector('img');
fetch('flowers.jpg')
.then(function(response) {
return response.blob();
})
.then(function(myBlob) {
let objectURL = URL.createObjectURL(myBlob);
myImage.src = objectURL;
});
普通参数get请求
fetch('/api/website/banners/').then(function(response) {
response.json().then(function(data) {
console.log(data);
});
}).catch(function(err) {
console.log("err===>",err)
});
fetch 也可以接受第二个参数
var myHeaders = new Headers();
var myInit = { method: 'GET',
headers: myHeaders,
mode: 'cors',
cache: 'default' };
fetch('flowers.jpg',myInit)
.then(function(response) {
return response.blob();
})
.then(function(myBlob) {
var objectURL = URL.createObjectURL(myBlob);
myImage.src = objectURL;
});
fetch post请求
var form = new FormData(document.getElementById('login-form'));
fetch("/login", {
method: "POST",
body: form
})