fetch是一个无需使用ajax发送网络请求的函数
使用fetch函数请求数据后,会返回一个promise对象,处理即可
fetch有两个参数 fetch('url', 配置对象(如请求的方法,body,向请求头添加一些参数)
处理fetch的promise 会返回(对象)响应相关的信息(respone)和响应原型上的方法这些方法都是fetch实现的 在使用原型上的方法 返回的也是一个promise对象 因此我们在做进一步的处理 就能拿到想要的数据
假设我们需要处理服务端返回给我们的json数据 我们直接调用 respone.json() 并返回 实际上是又返回了一个新的promise 我们在做一下处理即可拿到数据
fetch('url', { methods: 'GET'} ).then( respone => respone.json() ).then( data => { console.log(data) }) // 这里的data就是服务器返回给我们的json数据
以下是用fetch发送post请求
fetch('http://127.0.0.1:8888', {
method: 'POST', // 请求方法
body: JSON.stringify({
name: ipt.value
}),
// 设置请求头 告诉服务器 内容的类型是一个json
headers: {
'Content-Type': 'application/json'
}
}).then( response => {
return response.json()// 调用json方法返回一个promise 交给下一个then来处理 可以拿到服务器返回json的对象
}).then( data => {
console.log(data); // 拿到服务器返回的json对象
})