gm_ajax

ajax

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/477636/1266221/gm_ajax.js을(를) 사용하여 포함하는 라이브러리입니다.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

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);
			}
		});
	});