看到有大神发布了刷代码报考的流程,后来想研究一下稍做修改变成通过代码实现修改考点信息的功能,按照流程稍作修改返回值可以到修改信息的界面。然后只修改了提示信息并没有修改原有的函数,在运行过程中运行代码报错如下:
代码如下:
let signInfo = {
Ed: '10000044',
Etitle: ' 2021年6月20日项目管理资格认证考试',
Stype: '101',
StypeName: '项目管理师(PMP®)',
Xing: 'XXX', //你的姓拼音
Zhong: '',
Ming: 'XXXX', //你的名字拼音
Peixunjigou: 'XXXX',//培训机构代码
Peixunjigouming: 'XXXX',//培训机构名称
PMIUname: '英文账号',
PMIUpass: '英文密码',
IsPMIUser: false,
PMINumber: '',
PMIUtimeB: '',
PMIUtimeE: '',
PMItimeB: new Date(1600704000000), //pmi有效期起始时间,用时间戳转换工具
PMItimeE: new Date(1632240000000), //pmi有效期截止时间,用时间戳转换工具
Kaodian: 'XXXX', //考点id,待获取
Kaodianming: 'XXXXX', //考点名,待确认
PMIID: 'XXXX',//PMID
}
function trySign(u) {
SHOW.Ajax.User.Examsign.Sign(
u.Ed,
u.Etitle,
u.Stype,
u.StypeName,
u.Xing,
u.Zhong,
u.Ming,
u.Peixunjigou,
u.Peixunjigouming,
u.PMIUname,
u.PMIUpass,
u.IsPMIUser,
u.PMINumber,
u.PMIUtimeB,
u.PMIUtimeE,
u.PMItimeB,
u.PMItimeE,
u.Kaodian,
u.Kaodianming,
u.PMIID,
res => {
if (res.value != null) {
alert("修改考点成功", "修改提示:", function () {
window.location.href = "myexam" + SHOW.Config.Ext;
});
} else {
console.log(`修改失败!AT::${Date.now()}, 重试中...`);
trySign(u);
}
});
}
trySign(signInfo);
根据报错信息 "Uncaught TypeError: Cannot read property 'Ajax' of undefined" 来看,是因为 SHOW 变量未定义,导致代码执行时无法找到 SHOW.Ajax 对象。因此需要查看代码中是否缺少 SHOW 变量的定义。
建议在代码中添加 SHOW 变量的定义,例如:
let SHOW = {
Ajax: {
User: {
Examsign: {
Sign: function (ed, etitle, stype, stypename, xing, zhong, ming, peixunjigou, peixunjigouming, pmiuname, pmiupass, ispmiuser, pminumber, pmiutimeb, pmiutimee, pmitimeb, pmitimee, kaodian, kaodianming, pmiid, callback) {
// 根据实际代码添加具体实现
}
}
},
Config: {
Ext: '.html'
}
}
};
同时,根据代码中的注释,修改信息成功后需要切换到相应的界面,此时应该检查目标界面的 URL 是否正确,是否需要在 URL 后面添加必要的参数等。