发送http请求
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/376085/657823/httpSend.js
/*
*使用httpSend()函数调用,需把@require放在// @grant GM_xmlhttpRequest之后
*参数详解:
*url:请求的url,必须!
*type:请求方式(get/post),必须!
*mode:请求调用函数(jq/gm),必须!
*headers:自定义请求头,仅gm模式可用
*data:要发送的数据,仅post方式可用
*timeout:请求超时时间,单位毫秒
*dataType:返回数据类型(arraybuffer,blob,json)
*callback:请求完成回调函数
*username:用户名
*password:密码
*/
function httpSend(i,e={}){
if(!i.url){throw "缺少请求的url!"};
if(!i.type){throw "缺少请求方式(get/post)!"};
if(!i.mode){throw "缺少请求模式(jq/gm)!"};
e.url=i.url;
i.username&&(e.username=i.username);
i.password&&(e.password=i.password);
i.data&&(e.data=i.data);
i.timeout?e.timeout=i.timeout:e.timeout=30000;
if(/^jq$/i.test(i.mode)){
e.xhrFields={withCredentials: true};
e.crossDomain=true;
e.cache=false;
e.type=i.type;
i.dataType&&(e.dataType=i.dataType);
i.callback&&(e.complete=i.callback);
$.ajax(e);
}else if(/^gm$/i.test(i.mode)){
i.type&&(e.method=i.type.toUpperCase());
i.headers&&(e.headers=i.headers);
i.dataType&&(e.responseType=i.dataType);
i.callback&&(e.onload=i.callback);
GM_xmlhttpRequest(e);
}else{throw "此请求模式("+i.mode+")不存在!"}
}