请求

一个简单而轻巧的HTTP请求库由TypeScript为浏览器提供.
图书馆更喜欢 window.fetch API 和使用 XMLHttpRequest 没有支持.
安装
安装使用 npm install 命令 :
npm install -S @billjs/request
概览
API 密码
获取
HTTP请求.
这是一个基本的请求方法,你可以使用它发送任何方法的请求.
这个 success 当请求成功时将触发事件,这意味着 抓取成功 将召入.
这个 error 当请求失败时将触发事件,这意味着 抓取错误 将召入.
无论是成功还是失败的请求 complete 全部触发,这意味着 抓取完成 都叫来.
- url 密码 (单位:千美元)
string请求url - [数据] (单位:千美元)
anyoptional要求数据,例如:textJSONFormData等 (中文(简体) ). - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise它返回一个Promise,您可以使用then财务报告和审定财务报表catch方法Promise或者说async/await解决结果.
使用 then 财务报告和审定财务报表 catch 方法 Promise 解决结果.
fetch('/api/user/1234', null, { method: 'GET' })
.then(data => console.log(data))
.catch(err => console.log(err));
使用 async/await 解决结果.
async function getUser(uid: string) {
try {
const user = await fetch('/api/user/1234', null, { method: 'GET' });
console.log(user);
} catch (err) {
console.error(err);
}
}
起来
获取数据.
会用到的 GET 发送请求的方法。 此是自相能请.
- url 密码 (单位:千美元)
string) 获取请求url - [数据] (单位:千美元)
string | object | null) 查询参数。 它可以是字符串,也可以是对象. - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
get('/api/user/1234')
.then(user => console.log(user))
.catch(err => console.log(err));
头
这个 HEAD 方法请求与 GET 请求,但没有反应机构。 您可以用它来检查API是否正常工作 。 此是自相能请.
- url 密码 (单位:千美元)
string) 头请求url - [数据] (单位:千美元)
string | object | null) 查询参数。 它可以是字符串,也可以是对象. - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
head('/api/user/1234').catch(err => console.log(err));
员额
为新资源提交数据 。 会用到的 POST 发送请求的方法。 这是非本能的要求.
- url 密码 (单位:千美元)
string() 员额请求url - [数据] (单位:千美元)
any提交服务器的数据,可以是任何数据类型. - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
post('/api/user', { name: 'test', age: 32 })
.then(id => console.log(id))
.catch(err => console.log(err));
设置
更新数据以替换资源 。 会用到的 PUT 发送请求的方法。 此是自相能请.
- url 密码 (单位:千美元)
string将请求 url - [数据] (单位:千美元)
any提交服务器的数据,可以是任何数据类型. - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
put('/api/user/1234', { name: 'test', age: 22 }).catch(err => console.log(err));
补丁
类似 PUT 请求,但仅限于本地修改。 会用到的 PATCH 发送请求的方法。 这是非本能的要求.
- url 密码 (单位:千美元)
string) 补丁请求url - [数据] (单位:千美元)
any提交服务器的数据,可以是任何数据类型. - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
patch('/api/user/1234', { age: 28 })
.then(user => console.log(user))
.catch(err => console.log(err));
三角形
删除数据。 会用到的 DELETE 发送请求的方法。 此是自相能请.
- url 密码 (单位:千美元)
string删除请求url - [数据] (单位:千美元)
any提交服务器的数据,可以是任何数据类型. - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
del('/api/user/1234')
.then(success => console.log(success))
.catch(err => console.log(err));
选项
这个 OPTIONS 请求,常用于跨域探索。 此是自相能请.
- url 密码 (单位:千美元)
string) 选项请求url - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
options('/api/user')
.then(res => console.log(res))
.catch(err => console.log(err));
上传
上传窗体数据,例如文件等. 会用到的 Content-Type 联 合 国 multipart/form-data 上传窗体数据.
- url 密码 (单位:千美元)
string)上传url - [数据] (单位:千美元)
FormData() 窗体数据 - [可选 (单位:千美元)请求选项
optional额外备选办法,例如headers财务报告和审定财务报表type等 (中文(简体) ). - 返回时 (单位:千美元)
Promise(中文(简体) )
const formData = new FormData();
formData.append('image', blob);
upload('/api/upload/image', formData)
.then(data => console.log(data))
.catch(err => console.log(err));
抓取成功
环球捕捉所有成功的请求, 然后你可以做一些事情.
- 页:1 (单位:千美元)
(data: any, req: Request) => void)回调函数。 任何成功的请求都会称为此回调功能. 这个req参数是一个 请求 举个例子.
catchSuccess((data, req) => {
console.log(data);
});
抓取错误
Global 捕获所有失败的重排, 然后您就可以做一些事情, 例如显示错误消息提示 .
- 页:1 (单位:千美元)
(err: RequestError, req: Request) => void)回调函数。 任何失败的请求都将调用此调用函数 。 这个err参数是一个 请求错误 举个例子.
catchError((err, req) => {
// show an error message
Message.error(err.message);
});
抓取完成
Global 捕捉所有请求, 无论是成功还是失败, 那么您都可以做一些事情 .
- 页:1 (单位:千美元)
(err: RequestError | null, data: any, req: Request) => void)回调函数。 任何请求都会调用此调用函数 .
catchComplete((err, data, req) => {
console.log(err, data);
});
解析回复
全球定制的 HTTP 响应数据解析器, 它只对 json 数据类型.
您可以指定定制的解析器来解析针对自己的响应数据 。 但你必须返回正确的响应数据 由 ResponseData 结构.
如果您的服务器响应数据结构与 ResponseData,不需要指定剖析.
- 页:1 (单位:千美元)
ParseFunction解析器result参数是您的服务器响应数据。 这个return是一个 反应数据 举个例子.
如果你有自己的响应数据结构,你可以做到这一点. 例如:
parseResponse(result => {
return {
success: result.success,
statusCode: 200,
errorCode: result.error_code,
errorMessage: result.error_msg,
errorStack: result.error_stack ? result.error_stack : null,
data: result.data,
};
});
请求
HTTP 请求的类, 命名为 Request它执行请求的所有逻辑细节.
大多数时候,你不需要创建 Request 实例以发送 HTTP 请求,只需调用上述快捷键.
这样的建筑师宣言:
constructor(url: string, data: any, options: RequestOptions);
- url 密码 (单位:千美元)
string请求url - 数据 (单位:千美元)
any要求数据,例如:textJSONFormData等 (中文(简体) ). - 选项 (单位:千美元)请求选项额外备选办法,例如
headers财务报告和审定财务报表type等 (中文(简体) ).
请求选项
每个请求的选项, 您可以传递一些选项到 Request 为了你的案子.
选项列表 :
- 方法 (单位:千美元)
RequestMethodHTTP 请求方法,参见 请求方法默认值GET。 。 。 . - 页眉 (单位:千美元)
RequestHeaders)定制的HTTP请求头. 例如{"X-CSRF-Token":"123"}. 这是关键值地图. - 类型 (单位:千美元)
RequestType数据提交类型,见 请求类型默认值json。 。 。 . - 数据类型 (单位:千美元)
RequestDataType接受的答复数据类型,见 请求数据类型默认值json。 。 。 . - 内容类型 (单位:千美元)
RequestContentType(b) 请求Content-Type,参见 请求类型默认值application/json。 。 。 . - 超时 (单位:千美元)
numberHTTP 请求超时, 默认0,这意味着没有设置超时. - 使用XHR软件 (单位:千美元)
boolean被强迫使用 XHR ()XMLHttpRequest) 默认false,使用意愿window.fetchAPI (英语). 在大多数情况下,我们建议您使用window.fetchAPI (英语). - 全权证书 (单位:千美元)
boolean您需要发送cookie证书? 如果来源相同,则默认为true。否则,它就是false,这意味着不发送cookie证书。 如果您需要发送cookie跨域证书,您需要将其指定为true。 。 。 . - 剖析 (单位:千美元)
ParseFunction)此请求的定制HTTP响应数据解析器. 如果没有指定,则将使用全局定制的解析器或默认解析器. - 进展情况报告 (单位:千美元)
(loaded: number, total: number) => voidHTTP 请求进度事件处理器 .
请求方法
HTTP 请求方法 : GET, (中文(简体) ), HEAD, (中文(简体) ), POST, (中文(简体) ), PUT, (中文(简体) ), PATCH, (中文(简体) ), DELETE, (中文(简体) ), OPTIONS。 。 。 .
此属性值是大小写不敏感, 意思是 get 等于 GET。 。 。 .
请求类型
数据提交类型: json, (中文(简体) ), text, (中文(简体) ), urlencoded, (中文(简体) ), form。 。 。 .
相应 Content-Type 请求头将按提交类型自动设置.
- 乔森由JSON提交,请求
Content-Type实值application/json。 。 。 . - 文本: 通过 plainText 提交请求
Content-Type实值text/plain。 。 。 . - urlen 编码: 以 urlEncode 形式提交请求
Content-Type实值application/x-www-form-urlencoded。 。 。 . - 表单: 通过表格Data提交请求
Content-Type实值multipart/form-data。 。 。 .
请求数据类型
接受的响应数据类型: json, (中文(简体) ), text。 。 。 .
相应 Content-Type 响应头将按数据类型设置.
- 乔森接受JSON的回应
Content-Type实值application/json。 。 。 . - 文本: 由 plainText 编辑, 反应
Content-Type实值text/plain。 。 。 .
请求类型
请求 Content-Type默认值 application/json。 。 。 .
如果 type 中指定了与类型相对应的内容.
如果值是 false,这意味着没有设置 Content-Type 定制标题 。 例如,上传文件时,需要指定为 false。 。 。 .
请求错误
请求错误类, 它从错误延伸 .
添加 status 财务报告和审定财务报表 code 属性。 这个 status 属性为 HTTP 状态。 这个 code 属性是商务错误代码.
这样的建筑师宣言:
constructor(status: number, code: string, msg: string, stack?: string | null);
反应数据
标准化响应数据结构.
- 成功 (单位:千美元)
boolean成败状况. - 状态代码 (单位:千美元)
number)状态代码,它与HTTP状态相同. - 错误代码 (单位:千美元)
string|number错误代码,当请求失败时. - 错误 (单位:千美元)
string|null当请求失败时, 错误消息 。 如果请求成功,则null。 。 。 . - 错误 (单位:千美元)
string|null当请求失败时, 错误堆栈 。 仅限development模式,否则null。 。 。 . - 数据 (单位:千美元)
any|null反应数据,它是任何类型。 如果请求失败, 则null。 。 。 .
但作为一名来电者,你只会得到 data 你不需要关心其他的事情.