代码拉取完成,页面将自动刷新
var request = (function () {
var Request = function () {}
Request.prototype.send = function (options) {
options = options || {};
// 发送请求URL
var url = options.url;
// 请求类型
var type = (options.type || 'GET').toUpperCase();
// 数据
var data = options.data
// headers
var headers = options.headers
var responseType = options.responseType
// 创建xhr对象
var xhr
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
// 兼容低版本IE 10以下
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
xhr.open(type, url, true);
if (headers) {
Object.keys(headers).forEach(key => {
xhr.setRequestHeaders(key, headers[key])
})
}
if (responseType) {
xhr.responseType = responseType
}
xhr.send(data);
// 接收
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
var status = xhr.status;
if (status === 200) {
options.success && options.success(responseType? this.response:xhr.responseText);
} else {
options.error && options.error(xhr);
}
}
}
xhr.onerror = function () {
options.error && options.error(Error('There was a network error.'))
}
}
// 单例
if (Request.flag) return Request.flag;
Request.flag = new Request();
return Request.flag;
})()
// promise方式
var fetch = function (method, url, data) {
return new Promise((resolve, reject) => {
request.send({
type: method,
url,
data,
success: function (json) {
resolve(json)
},
error: function (err) {
reject(err)
}
})
})
}
// 根据url下载文件
var downloadFile = function (url) {
return new Promise((resolve, reject) => {
request.send({
type: 'get',
url,
responseType: 'blob',
success: function (data) {
resolve(data)
},
error: function (err) {
reject(err)
}
})
})
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。