工作中写http请求时候,Angular官方就提供了http请求**服务–(HttpClient Service)。**HttpClient服务对象用于向指定的URL发起异步请求。
之前写Vue和React时候,都是直接用的Axios一把梭哈,Fetch没用过。个人理解是,Axios是基于Promise的。HttpClient Service是基于Observe,采用订阅模式。HttpClient是基于XMLHttpRequest 提供的接口。
工作中用的是ABP框架,它自带了封装好的http请求方法。
看了别人的文章,做一些总结
Fetch概述和语法
.fetch()
方法的语法。
fetch(url)
.then((res) =>
// handle response
)
.catch((error) => {
// handle error
})
在上面的示例中,您可以看到简单的获取GET请求的语法。在.fetch()
方法中,我们有一个强制性参数url,它返回一个Promise,可以使用Response对象来解决。
.fetch()
方法的第二个参数是选项,它是可选的。如果我们不传递options
,请求总是GET,它从给定的URL下载内容。
在选项参数里面,我们可以传递方法或头信息,所以如果我们想使用POST方法或其他方法,我们必须使用这个可选的数组。
正如我之前提到的,Promise会返回Response对象,正因为如此,我们需要使用另一个方法来获取响应的主体。有几种不同的方法可以使用,取决于我们需要的格式:
-
response.json()
-
response.text()
-
response.formData()
-
response.blob()
-
response.arrayBuffer()