// ==UserScript== // @name 浙江东方职业技术学院校园网自动登录(采用 POST 请求版)专业人员使用 // @namespace https://docs.scriptcat.org/ // @version 1.1.1 // @description 完全匹配你提供的查询字符串+表单数据,修正参数笔误,确保登录成功 // @author You // @match http://10.0.189.200/a70.htm* // @grant none // @run-at document-idle // ==/UserScript== // ========== (仅修改学号/密码,其余无需动) ========== const USERNAME = ""; // 你的学号 const PASSWORD = ""; // 你的密码 const LAS = ""; // 电信2/移动1/联通3 // 查询字符串参数(固定isReback=1) const QUERY_PARAM = "isReback=1"; // 表单数据(修正笔误:redirect url → redirect_url,其余完全匹配) const FORM_DATA = `DDDDD=${USERNAME}&upass=${PASSWORD}&R1=0&R2=&R3=${LAS}&R6=0¶=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=`; // 完整登录URL(拼接查询字符串) const LOGIN_URL = `http://10.0.189.200/a70.htm?${QUERY_PARAM}`; // ========== 发送精准匹配的登录请求 ========== function submitLogin() { console.log("[精准参数版] 开始发送登录请求,参数与手动操作完全一致"); const xhr = new XMLHttpRequest(); xhr.open("POST", LOGIN_URL, true); // 仅保留合法请求头(浏览器自动填充其余头) xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // 精准判断登录成功(适配Drcom认证成功页) xhr.onload = function() { const responseText = xhr.responseText; // 成功特征:认证成功页标题/UID匹配/登录时间 const isSuccess = responseText.includes("认证成功页") || responseText.includes(`UID='${USERNAME}'`) || responseText.includes("stime=") && responseText.includes("etime="); if (xhr.status === 200) { if (isSuccess) { console.log("✅ 登录成功!参数匹配无误,Drcom认证通过"); // 等待页面自动跳转(认证成功页自带跳转逻辑) } else { console.error("❌ 登录失败:参数匹配但服务器返回非成功页,响应片段:", responseText.substring(0, 300)); } } else { console.error("❌ 请求失败,状态码:", xhr.status); } }; // 发送完全匹配的表单数据 xhr.send(FORM_DATA); } // 页面加载后执行(确保会话/Cookie就绪) window.addEventListener('load', () => setTimeout(submitLogin, 2000));