@ni-web-infra/common-utils
Version:
NI util function library
40 lines (39 loc) • 2.08 kB
TypeScript
export type Cancelable = {
cancel: () => void;
};
export type Callback<T> = (error: Error | null | undefined, result: T | null | undefined) => void;
interface Headers {
[key: string]: string;
}
export type RequestParameters = {
url: string;
headers?: Headers;
method?: "GET" | "POST" | "PUT";
body?: string;
type?: "string" | "json" | "arrayBuffer";
credentials?: "same-origin" | "include";
collectResourceTiming?: boolean;
referrerPolicy?: ReferrerPolicy;
};
export type ResponseCallback<T> = (error?: Error | null | undefined, data?: T | null | undefined, cacheControl?: string | null | undefined, expires?: string | null | undefined) => void;
/**
* 请求函数
* @function ajax
*
* @param {RequestParameters} requestParameters 请求参数
* @param {string} requestParameters.url 要请求的URL。
* @param {Object} requestParameters.headers 要与请求一起发送的标头。
* @param {string} requestParameters.method 请求方法“GET”|“POST”|“PUT”。
* @param {string} requestParameters.body 请求正文。
* @param {string} requestParameters.type 要返回的响应主体类型为“string”、“json”、“arrayBuffer”。
* @param {string} requestParameters.credentials `'same-origin'|'include'` 使用”include“发送带有跨源请求的 cookie。
* @param {boolean} requestParameters.collectResourceTiming 如果为true,将为这些转换后的请求收集 Resource Timing API 信息,并在相关数据事件的resourceTiming属性中返回。
* @param {string} requestParameters.referrerPolicy 表示请求的referrerPolicy的字符串。有关更多信息和可能的值,请参阅[Referrer Policy HTTP头页](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy).
* @param {Callback} callback 回调函数
* @returns {Cancelable} { cancel: () => { ... } }
*
* @example
* ajax({url: 'data.json', type: "json", method: "GET"}, (res) => {})
*/
export declare function ajax(requestParameters: RequestParameters, callback: Callback<any>): Cancelable;
export {};