赞
踩
Fetch 是一个现代的概念, 等同于 XMLHttpRequest,它提供了许多与XMLHttpRequest相同的功能。
Fetch 的核心在于对 HTTP 接口的抽象,包括 Request,Response,Headers,Body,以及用于初始化异步请求的 global fet
1、当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject, 即使响应的 HTTP 状态码是 404 或 500。
2、fetch() 可以接受跨域 cookies。
3、fetch 不会发送 cookies,除非使用了credentials 的初始化选项。
var myRequest = new Request(input[, init]);
调用fetch()时:
var myImage = document.querySelector('img');
var myRequest = new Request('flowers.jpg');
fetch(myRequest).then(function(response) {
return response.blob();
}).then(function(response) {
var objectURL = URL.createObjectURL(response);
myImage.src = objectURL;
});
在调用fetch()时,传入init对象:
var myImage = document.querySelector('img'); var myHeaders = new Headers(); myHeaders.append('Content-Type', 'image/jpeg'); var myInit = { method: 'GET', headers: myHeaders, mode: 'cors', cache: 'default' }; var myRequest = new Request('flowers.jpg',myInit); fetch(myRequest).then(function(response) { ... }) //将init对象作为参数传递到fetch调用中来达到同样的效果 //fetch(myRequest,myInit).then(function(response) { // ... //});
使用在init中使用对象字面量作为headers:
var myInit = { method: 'GET',
headers: {
'Content-Type': 'image/jpeg'
},
mode: 'cors',
cache: 'default' };
var myRequest = new Request('flowers.jpg', myInit);
var myRequest = new Request('flowers.jpg'); var myMethod = myRequest.method; // GET var myURL = request.url; var myHeaders = request.headers; var myContext = request.context; var myReferrer = request.referrer; var myReferrerPolicy = request.referrerPolicy; var myMode = request.mode; var myCred = request.credentials; var currentCacheMode = request.cache;
var myRequest = new Request('flowers.jpg');
var newRequest = myRequest.clone();
let myResponse = new Response(body, init);
var myHeaders = new Headers(init);
//创建一个空的Headers对象: var myHeaders = new Headers(); //通过append()方法添加header myHeaders.append(name,value); //通过get()方法获取header myHeaders.get('Content-Type'); //删除指定header myHeaders.delete(name); //返回Headers对象中所有的键值对 myHeaders.entries(); myHeaders.has(name); myHeaders.set(name, value); myHeaders.keys(); myHeaders.values();
//返回一个json类型的数据 const myList = document.querySelector('ul'); const myRequest = new Request('products.json'); fetch(myRequest) .then(response => response.json()) .then(data => { //处理返回的数据,视情况而定 for (const product of data.products) { let listItem = document.createElement('li'); listItem.appendChild( document.createElement('strong') ).textContent = product.Name; listItem.append( ` can be found in ${ product.Location }. Cost: ` ); listItem.appendChild( document.createElement('strong') ).textContent = `£${product.Price}`; myList.appendChild(listItem); } });
fetch() 方法用于发起获取资源的请求。它返回一个 promise,这个 promise 会在请求响应后被 resolve,并传回 Response 对象
Promise<Response> fetch(input[, init]);
//数据库返回的是一个json类型的数据,请求方式默认为GET,所以在此处省略
fetch("url地址").then(function(response) {
//可以将json换成其他类型,具体类型参考规定参数类型和服务器的返回值类型
return response.json();
}).then(function(data) {
//对返回数据进行处理
});
//数据库返回的是一个json类型的数据
//在url地址上拼接参数具体格式`?参数名=参数值&参数名=参数值`
fetch("url地址").then(function(response) {
//可以将json换成其他类型,具体类型参考规定参数类型和服务器的返回值类型
return response.json();
}).then(function(data) {
//对返回数据进行处理
});
//数据库返回的是一个json类型的数据
fetch("url地址",{method:"post"}).then(function(response) {
//可以将json换成其他类型,具体类型参考规定参数类型和服务器的返回值类型
return response.json();
}).then(function(data) {
//对返回数据进行处理
});
//数据库返回的是一个json类型的数据
let init = {method:"post",body:"参数"}
var myRequest = new Request('url地址',init);
fetch(myRequest ).then(function(response) {
//可以将json换成其他类型,具体类型参考规定参数类型和服务器的返回值类型
return response.json();
}).then(function(data) {
//对返回数据进行处理
});
var url = 'https://example.com/profile';
var data = {username: 'example'};
fetch(url, {
method: 'POST', // or 'PUT'
body: JSON.stringify(data), // data can be `string` or {object}!
headers: new Headers({
'Content-Type': 'application/json'
})
}).then(res => res.json())
.catch(error => console.error('Error:', error))
.then(response => console.log('Success:', response));
var formData = new FormData();
var fileField = document.querySelector("input[type='file']");
formData.append('username', 'abc123');
formData.append('avatar', fileField.files[0]);
fetch('https://example.com/profile/avatar', {
method: 'PUT',
body: formData
})
.then(response => response.json())
.catch(error => console.error('Error:', error))
.then(response => console.log('Success:', response));
var formData = new FormData();
var fileField = document.querySelector("input[type='file']");
formData.append('username', 'abc123');
formData.append('avatar', fileField.files[0]);
fetch('https://example.com/profile/avatar', {
method: 'PUT',
body: formData
})
.then(response => response.json())
.catch(error => console.error('Error:', error))
.then(response => console.log('Success:', response));
本文摘抄与此(戳一下),如有错误请看原文或联系本人!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。