Fetch发送请求
fetch
是 javascript 中一个新的 api,用于访问和控制 HTTP 的请求和响应等,不再需要使用传统的 XMLHttoRequest
。
fetch和ajax的不同
fetch
发送请求后,返回一个 promise,只有在网络无法连接或者请求被阻止的时候,会返回 reject,其他情况下,fetch不会对状态码进行判断,统一返回 resolve,需要在响应数据中手动判断状态码来确定响应是否可用。
fetch
默认不会发送跨域cookies,可以在credentials选项中进行配置。
fetch使用
下面的代码展示最简单的 fetch
使用,在 fetch()
中填入一个请求路径,会得到一个响应,解析响应得到最终的数据,这里使用 json()
来解析 json 数据。
fetch("http://example.com/movies.json") // 发起请求
.then((response) => response.json()) // 解析响应数据
.then((data) => console.log(data)); // 打印数据
请求参数配置
fetch()
除了请求路径之外,还可以传入第二个参数,该参数类型是一个对象,可以用来控制本次请求的配置
const response = await fetch('https://example.com/answer', {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
});
cosnt json = response.json();
console.log(json);
上面的代码中,在配置项中设置了本次请求的方法是 POST,还指定了本次传输的数据类型是 json 格式,通过 body 写入需要传输的数据。