api 发送格式在原来的 json form-data 之外支持配 dataType 为 form
This commit is contained in:
parent
7bef503e68
commit
1c60386251
|
@ -60,7 +60,7 @@ Api 类型可以是字符串或者对象。API 中可以直接设置数据发送
|
||||||
- `url` api 地址
|
- `url` api 地址
|
||||||
- `method` 可以是:`get`、`post`、`put`或者`delete`
|
- `method` 可以是:`get`、`post`、`put`或者`delete`
|
||||||
- `data` 数据体, 数据对象。
|
- `data` 数据体, 数据对象。
|
||||||
- `dataType` 数据体格式,默认为 `json` 可以配置成 `form`。当 data 中包含文件时,自动会采用 `form`(multipart/form-data) 格式。
|
- `dataType` 数据体格式,默认为 `json` 可以配置成 `form` 或者 `form-data`。当 data 中包含文件时,自动会采用 `form-data`(multipart/form-data) 格式。当配置为 `form` 时为 `application/x-www-form-urlencoded` 格式。
|
||||||
- `headers` 头部,配置方式和 data 配置一样,下面不详讲。如果要使用,请前往群组系统配置中,添加允许。
|
- `headers` 头部,配置方式和 data 配置一样,下面不详讲。如果要使用,请前往群组系统配置中,添加允许。
|
||||||
- `sendOn` 可以配置发送条件比如: `this.id` 表示当存在 id 值时才发送这个请求。
|
- `sendOn` 可以配置发送条件比如: `this.id` 表示当存在 id 值时才发送这个请求。
|
||||||
- `cache` 通过配置此属性开启缓存,单位是 ms,比如设置 3000 的话,当前接口在3s内请求,只要传参一致就会走缓存。
|
- `cache` 通过配置此属性开启缓存,单位是 ms,比如设置 3000 的话,当前接口在3s内请求,只要传参一致就会走缓存。
|
||||||
|
|
|
@ -2,7 +2,7 @@ export interface ApiObject {
|
||||||
url: string;
|
url: string;
|
||||||
method: 'get' | 'post' | 'put' | 'patch' | 'delete';
|
method: 'get' | 'post' | 'put' | 'patch' | 'delete';
|
||||||
data?: object;
|
data?: object;
|
||||||
headers?: object;
|
headers?: PlainObject;
|
||||||
config?: {
|
config?: {
|
||||||
withCredentials?: boolean;
|
withCredentials?: boolean;
|
||||||
cancelExecutor?: (cancel: Function) => void;
|
cancelExecutor?: (cancel: Function) => void;
|
||||||
|
@ -13,7 +13,7 @@ export interface ApiObject {
|
||||||
requestAdaptor?: (api: ApiObject) => ApiObject;
|
requestAdaptor?: (api: ApiObject) => ApiObject;
|
||||||
cache?: number;
|
cache?: number;
|
||||||
qsOptions?: any;
|
qsOptions?: any;
|
||||||
dataType?: 'json' | 'form-data';
|
dataType?: 'json' | 'form-data' | 'form';
|
||||||
}
|
}
|
||||||
export type ApiString = string;
|
export type ApiString = string;
|
||||||
export type Api = ApiString | ApiObject;
|
export type Api = ApiString | ApiObject;
|
||||||
|
|
|
@ -145,6 +145,10 @@ export function wrapFetcher(
|
||||||
|
|
||||||
if (api.data && (hasFile(api.data) || api.dataType === 'form-data')) {
|
if (api.data && (hasFile(api.data) || api.dataType === 'form-data')) {
|
||||||
api.data = object2formData(api.data, api.qsOptions);
|
api.data = object2formData(api.data, api.qsOptions);
|
||||||
|
} else if (api.data && api.dataType === 'form') {
|
||||||
|
api.data = qsstringify(api.data) as any;
|
||||||
|
api.headers = api.headers || (api.headers = {});
|
||||||
|
api.headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
||||||
}
|
}
|
||||||
|
|
||||||
api.requestAdaptor && (api = api.requestAdaptor(api) || api);
|
api.requestAdaptor && (api = api.requestAdaptor(api) || api);
|
||||||
|
|
Loading…
Reference in New Issue