🏠 

gm_ajax

ajax

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/477636/1266221/gm_ajax.js

const ajax = (url, data, opts = {}) => new Promise((resolve, reject) => {
if (!url) throw new Error('xmlHttpRequest url must exists!')
var GM = typeof GM === 'undefined' ? {} : GM;
if (typeof GM_xmlhttpRequest === 'undefined' && typeof GM.xmlHttpRequest === 'undefined') {
throw new Error('GM_xmlhttpRequest or GM.xmlHttpRequest must exists!')
}
if (typeof GM_xmlhttpRequest === 'function' && !GM.xmlHttpRequest) {
GM.xmlHttpRequest = GM_xmlhttpRequest
}
var params = {
url,
method: opts.method=='POST'||data ? 'POST' : 'GET',
synchronous: opts.sync || true,
responseType: opts.dataType || 'text',
headers: opts.headers||null
}
if(params.method=='POST') params['data']=data;
//console.log(params);
var gmReq = GM.xmlHttpRequest || GM_xmlhttpRequest;
gmReq({
...params,
onload(res) {
//console.log(res)
if (res.status >= 200 && res.status < 300) {
resolve(res.response);
} else {
reject(res);
}
},
onerror(err) {
reject(err);
}
});
});