GM_xmlhttpRequest 封装
Tính đến
Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta
// @require https://update.greatest.deepsurf.us/scripts/565272/1804285/GM_request.js
(function () {
function GM_request(details) {
const {
onload,
onerror,
onretry,
maxRetries,
currentRetry = 0,
url,
...other
} = details;
return fetch(url, other)
.then((response) => {
if (response.ok) {
return response;
} else {
throw new Error(
`Request failed with status ${response.status}: ${response.statusText}`,
);
}
})
.catch((error) => {
if (maxRetries && currentRetry < maxRetries) {
const retryDetails = {
...details,
currentRetry: currentRetry + 1,
};
onretry?.(retryDetails);
return GM_request(retryDetails);
} else {
onerror?.(error);
return Promise.reject(error);
}
});
}
window.GM_request = GM_request;
})();