推荐答案
-- -------------------- ---- ------- -------- -------- ----- - ------ --- ----------------- ------- -- - ----- --- - --- ----------------- ----- ------ - --- --------------------------------- ----- ------- - ------ - ------------------ - ---- --------------- -------- ------ ---------- - ---------- - -- ----------- -- --- -- ---------- - ---- - -------------------------- - ---- - ---------- -------------- ------ ---- ------ ----------------- - -- ----------- - ---------- - ---------- -------------- ---------- -- ----------- --- -
本题详细解读
1. 函数定义
get(url, data)
是一个异步函数,用于发送 GET 请求。它接受两个参数:
url
: 请求的目标 URL。data
: 一个对象,包含要附加到 URL 的查询参数。
2. 创建 XMLHttpRequest 对象
使用 XMLHttpRequest
对象来发送 HTTP 请求。XMLHttpRequest
是浏览器提供的原生 API,用于与服务器进行交互。
3. 处理查询参数
data
参数是一个对象,需要将其转换为 URL 查询字符串。使用 URLSearchParams
对象可以方便地将对象转换为查询字符串。如果 data
为空,则直接使用原始 URL。
4. 打开请求
使用 xhr.open('GET', fullUrl, true)
打开请求。true
表示请求是异步的。
5. 处理响应
在 xhr.onload
回调函数中处理响应。如果状态码在 200 到 299 之间,表示请求成功,调用 resolve
并返回响应文本。否则,调用 reject
并返回错误信息。
6. 处理错误
在 xhr.onerror
回调函数中处理网络错误。如果请求失败,调用 reject
并返回错误信息。
7. 发送请求
最后,调用 xhr.send()
发送请求。由于是 GET 请求,不需要传递请求体。
8. 返回 Promise
函数返回一个 Promise 对象,调用者可以使用 then
和 catch
来处理成功和失败的情况。