ivue-material-plus
Version:
A high quality UI components Library with Vue.js
1 lines • 4.84 kB
Source Map (JSON)
{"version":3,"file":"ajax.mjs","sources":["../../../../../src/components/ivue-upload/ajax.ts"],"sourcesContent":["// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\r\n\r\nfunction getError(uploadUrl: string, option, xhr: XMLHttpRequest) {\r\n const msg = `fail to post ${uploadUrl} ${xhr.status}`;\r\n\r\n const error: any = new Error(msg);\r\n error.status = xhr.status;\r\n error.methods = 'post';\r\n error.url = uploadUrl;\r\n return error;\r\n}\r\n\r\nfunction getBody(xhr) {\r\n const text = xhr.responseText || xhr.response;\r\n\r\n if (!text) {\r\n return text;\r\n }\r\n\r\n try {\r\n return JSON.parse(text);\r\n } catch (e) {\r\n return text;\r\n }\r\n}\r\n\r\nexport default function upload(option) {\r\n if (typeof XMLHttpRequest === 'undefined') {\r\n return;\r\n }\r\n\r\n const xhr = new XMLHttpRequest();\r\n const uploadUrl = option.uploadUrl;\r\n\r\n if (xhr.upload) {\r\n // 数据传输进行中\r\n xhr.upload.onprogress = function progress(e: any) {\r\n if (e.total > 0) {\r\n // 操作处理的当前字节数 / 操作将处理的总字节数 * 100\r\n e.percent = (e.loaded / e.total) * 100;\r\n }\r\n option.onProgress(e);\r\n };\r\n }\r\n\r\n const formData = new FormData();\r\n\r\n // 是否有上传时附带的额外参数\r\n if (option.data) {\r\n Object.keys(option.data).map((key) => {\r\n formData.append(key, option.data[key]);\r\n });\r\n }\r\n\r\n formData.append(option.filename, option.file);\r\n\r\n // 处理操作时发生错误时调用的回调处理程序\r\n xhr.onerror = function error(e) {\r\n option.onError(e);\r\n };\r\n\r\n // 上传成功完成\r\n xhr.onload = function onload() {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n return option.onError(getError(uploadUrl, option, xhr), getBody(xhr));\r\n }\r\n option.onSuccess(getBody(xhr));\r\n };\r\n\r\n xhr.open('post', uploadUrl, true);\r\n\r\n // 是否支持cookie\r\n if (option.withCredentials && 'withCredentials' in xhr) {\r\n xhr.withCredentials = true;\r\n }\r\n\r\n // 设置请求头\r\n const headers = option.headers || {};\r\n for (const item in headers) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (headers.hasOwnProperty(item) && headers[item] !== null) {\r\n xhr.setRequestHeader(item, headers[item]);\r\n }\r\n }\r\n\r\n xhr.send(formData);\r\n}\r\n"],"names":[],"mappings":"AAEA,SAAS,QAAA,CAAS,SAAmB,EAAA,MAAA,EAAQ,GAAqB,EAAA;AAChE,EAAM,MAAA,GAAA,GAAM,CAAgB,aAAA,EAAA,SAAA,CAAA,CAAA,EAAa,GAAI,CAAA,MAAA,CAAA,CAAA,CAAA;AAE7C,EAAM,MAAA,KAAA,GAAa,IAAI,KAAA,CAAM,GAAG,CAAA,CAAA;AAChC,EAAA,KAAA,CAAM,SAAS,GAAI,CAAA,MAAA,CAAA;AACnB,EAAA,KAAA,CAAM,OAAU,GAAA,MAAA,CAAA;AAChB,EAAA,KAAA,CAAM,GAAM,GAAA,SAAA,CAAA;AACZ,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEA,SAAS,QAAQ,GAAK,EAAA;AACpB,EAAM,MAAA,IAAA,GAAO,GAAI,CAAA,YAAA,IAAgB,GAAI,CAAA,QAAA,CAAA;AAErC,EAAA,IAAI,CAAC,IAAM,EAAA;AACT,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAI,IAAA;AACF,IAAO,OAAA,IAAA,CAAK,MAAM,IAAI,CAAA,CAAA;AAAA,WACf,CAAP,EAAA;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF,CAAA;AAEA,SAAwB,OAAO,MAAQ,EAAA;AACrC,EAAI,IAAA,OAAO,mBAAmB,WAAa,EAAA;AACzC,IAAA,OAAA;AAAA,GACF;AAEA,EAAM,MAAA,GAAA,GAAM,IAAI,cAAe,EAAA,CAAA;AAC/B,EAAA,MAAM,YAAY,MAAO,CAAA,SAAA,CAAA;AAEzB,EAAA,IAAI,IAAI,MAAQ,EAAA;AAEd,IAAA,GAAA,CAAI,MAAO,CAAA,UAAA,GAAa,SAAS,QAAA,CAAS,CAAQ,EAAA;AAChD,MAAI,IAAA,CAAA,CAAE,QAAQ,CAAG,EAAA;AAEf,QAAA,CAAA,CAAE,OAAW,GAAA,CAAA,CAAE,MAAS,GAAA,CAAA,CAAE,KAAS,GAAA,GAAA,CAAA;AAAA,OACrC;AACA,MAAA,MAAA,CAAO,WAAW,CAAC,CAAA,CAAA;AAAA,KACrB,CAAA;AAAA,GACF;AAEA,EAAM,MAAA,QAAA,GAAW,IAAI,QAAS,EAAA,CAAA;AAG9B,EAAA,IAAI,OAAO,IAAM,EAAA;AACf,IAAA,MAAA,CAAO,KAAK,MAAO,CAAA,IAAI,CAAE,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACpC,MAAA,QAAA,CAAS,MAAO,CAAA,GAAA,EAAK,MAAO,CAAA,IAAA,CAAK,GAAI,CAAA,CAAA,CAAA;AAAA,KACtC,CAAA,CAAA;AAAA,GACH;AAEA,EAAA,QAAA,CAAS,MAAO,CAAA,MAAA,CAAO,QAAU,EAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AAG5C,EAAI,GAAA,CAAA,OAAA,GAAU,SAAS,KAAA,CAAM,CAAG,EAAA;AAC9B,IAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AAAA,GAClB,CAAA;AAGA,EAAI,GAAA,CAAA,MAAA,GAAS,SAAS,MAAS,GAAA;AAC7B,IAAA,IAAI,GAAI,CAAA,MAAA,GAAS,GAAO,IAAA,GAAA,CAAI,UAAU,GAAK,EAAA;AACzC,MAAO,OAAA,MAAA,CAAO,QAAQ,QAAS,CAAA,SAAA,EAAW,QAAQ,GAAG,CAAA,EAAG,OAAQ,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,KACtE;AACA,IAAO,MAAA,CAAA,SAAA,CAAU,OAAQ,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAI,GAAA,CAAA,IAAA,CAAK,MAAQ,EAAA,SAAA,EAAW,IAAI,CAAA,CAAA;AAGhC,EAAI,IAAA,MAAA,CAAO,eAAmB,IAAA,iBAAA,IAAqB,GAAK,EAAA;AACtD,IAAA,GAAA,CAAI,eAAkB,GAAA,IAAA,CAAA;AAAA,GACxB;AAGA,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,OAAA,IAAW,EAAC,CAAA;AACnC,EAAA,KAAA,MAAW,QAAQ,OAAS,EAAA;AAE1B,IAAA,IAAI,QAAQ,cAAe,CAAA,IAAI,CAAK,IAAA,OAAA,CAAQ,UAAU,IAAM,EAAA;AAC1D,MAAI,GAAA,CAAA,gBAAA,CAAiB,IAAM,EAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,CAAA;AAAA,KAC1C;AAAA,GACF;AAEA,EAAA,GAAA,CAAI,KAAK,QAAQ,CAAA,CAAA;AACnB;;;;"}