0. 注意

全文仅供学习参考,有时间的同学还是请认认真真的学习该课程。

1. 解决方法

  1. 用浏览器(建议用chrome)打开课程主页,然后点击去学习接着点击该课程下的一节课!

  2. F12打开开发者工具,打开console,然后切换javascript contextmcwk

  3. 输入finishWxCourse();回车即可!

  1. 返回课程列表页面,查看该节课是否已完成?

Ps: 注意以下几点:

  • 如果返回到课程列表页面,该节课是未完成状态,可能是缓存,可以重新执行上述步骤,或者先处理其他课,隔一段时间再看是否已完成。

2. 分析

登录之后,点击新生课堂

然后随便一门课

就第一个 防盗知识-基础篇吧,完成该节课学习之后,弹出来一个alert。

看到嵌入式页面,可以猜测是从<iframe></iframe>中弹出来的。

同时,我们可以从network中看到多一个请求

根据字面意思,大概就是向服务器发送请求表明我已经完成了该节课的学习。

通过查看该请求的Initiator(下图),可以得知该请求是从wx.jsfinishWxCourse()发起的。

wx.js中的finishWxCourse()如下:

function finishWxCourse() {try{console.log(exportRoot.currentFrame)}catch(e){}try {var userid = getQueryString("userCourseId");var jiaoxuejihuaid = getQueryString("tenantCode");var finishWxHost = document.referrer.replace("http://","").replace("https://","").split("/")[0];if(document.referrer=="" || document.referrer==null || document.referrer==undefined){finishWxHost = "weiban.mycourse.cn"}var webUrl = window.location.href;var finishWxUrl=getRecordUrl(webUrl);if(finishWxHost.indexOf("218.25.139.161") > 0){//finishWxUrl = "http://"+finishWxHost+"/pharos/usercourse/finish.do";finishWxUrl = "https://"+finishWxHost+"/pharos/usercourse/finish.do";}var finishData = {"userCourseId": userid, "tenantCode": jiaoxuejihuaid};$.ajax({async: false,url: finishWxUrl,type: "GET",dataType: "jsonp",data: finishData,timeout: 5000,success : function (data) {if (data.msg == "ok") {alert("恭喜,您已完成本微课的学习");} else {alert("发送完成失败");}},error: function (XMLHttpRequest, textStatus, errorThrown) {}});} catch (e) {alert("报了啥错误" + e)}
}

可以看到该函数主要就是拿到var finishData = {"userCourseId": userid, "tenantCode": jiaoxuejihuaid};之后发起Ajax请求。

那我们先直接无脑在console中直接运行该函数,看能得到什么结果。

注意此处将javascript context切换到mcwk.mycourse.cn这个iframe中。

结果运行如下:

返回到课程页面,可以看到该课程已完成。

3. 总结

很意外找到此方法!他并没有用到瑞数那种比较复杂的反爬技术,仅供学习参考吧!

另外,该课程的考试比较简单,建议开两个窗口,一个是考试窗口,另一个用百度在过程中搜题!

利用js快速完成大学生新生安全教育课程相关推荐

  1. 54 Node.js快速入门

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.Node开发概述 1.1 为什么要学习服务器端开发基础 能够与后端程序员更加紧密的配合 ...

  2. 计算机学院新生入学致辞,计算机学院召开2020级新生入学教育启动大会

    新生入学教育是整个大学教育的起点,是大学思想政治教育的重要组成部分.为切实做好2020级新生入学教育工作,9月22日晚,计算机学院召开入学教育启动大会.院领导.辅导员班主任.教师代表.学生代表以及全体 ...

  3. 如何用计算机技术,如何利用计算机技术快速高效建立学籍档案

    摘 要:学生学籍档案资料在学生离校后要立卷归档,我们可以利用计算机快速.高效的优势,简化学籍档案资料立卷工作,有效提高工作效率,减少失误. 关键词:计算机管理学籍档案立卷 归档 为此本人认为利用计算机 ...

  4. js快速计算文件hash值

    1. 通过 requestIdleCallback or spark-md5利用浏览器空闲时间切片计算文件hash值: requestIdleCallback简介: window.requestIdl ...

  5. 利用Disqus快速搭建评论系统

    说实在的真正的代码就那么几行,为了凑字数,先抄一段百度百科上的简介,有兴趣的童鞋可以去Disqus官网上看一看 Disqus的主要目标是通过提供功能强大的第三评论系统,将当前不同网站的相对孤立.隔绝的 ...

  6. 高校大学生党史学习教育网站

    摘  要 本文基于SSM框架,设计了一套高校大学生党史学习教育网站.整个网站的设计和实现,能够有效引导大学生深入学习党史,增强党性意识和从政意识.同时,还能为学校和党组织提供一个有效的管理和推广平台. ...

  7. 计算机学院新生入学讲座,计算机学院召开新生入学教育之安全教育讲座

    原标题:计算机学院召开新生入学教育之安全教育讲座 计算机学院新生入学教育之安全教育讲座 为增强新生安全意识,提高自我保护能力,共同创建平安和谐校园,计算机学院于11月13日晚在明德楼MD402.MD4 ...

  8. 企业如何利用 Serverless 快速扩展业务系统?

    2022 年 9 月 24 日,阿里云用户组(AUG)第 12 期活动在厦门举办.活动现场,阿里云高级技术专家史明伟(花名:世如)向参会企业代表分享了<未来已来--从技术升级到降本提效>. ...

  9. php for等边三角形,利用js实现等腰三角形

    等腰三角形 主要是利用js中的for循环考验对for循环的灵活运用 还有就是利用空格来调*位置,来实现等腰三角形的排列. for (var h = 9 - 1; h >= i; h--) { / ...

  10. CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛

    这个是转来的,细节没有验证,请网友自己斟酌.......... CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛 1.安装Apache [root@bogon t ...

最新文章

  1. python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
  2. sock_dgram 可以用listen吗_洗脸皂可以天天用吗
  3. vi 编辑器基本使用
  4. macos关闭软件更新小红点_MacOS和Windows哪个更适合你?
  5. 16*64点阵屏的c语言程序,16*64点阵程序 - 单片机/MCU论坛 - 电子技术论坛 - 广受欢迎的专业电子论坛!...
  6. linux 4t磁盘格式化,centos格式化大于2T的硬盘
  7. 西奥妮·帕帕斯《天天数学》
  8. Spring使用ComponentScan扫描Maven多模块工程的其它模块
  9. ug许可证服务器注册表删除,ug许可证卸载工具
  10. 如何区分字母大写I小写字母l以及数字1
  11. STM32F4 GPIO模式及工作原理详解
  12. 十以内加法速算游戏设计
  13. RMAN-06091 no channel allocated for maintenance
  14. 一文详解什么是代理模式
  15. script什么意思中文翻译成,script中文是什么意思
  16. 【05月22日】预分红股息率最高排名
  17. 新兴职业背后的认知逻辑
  18. 靠窗座位订票技能和退票省钱技能
  19. C++大作业--班级同学信息管理系统
  20. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解

热门文章

  1. Photoshop怎样快速调整画笔大小
  2. 鸡蛋不要放在一个篮子里
  3. 360隐私保险箱 vs misuo
  4. cad中简单流程图制作_教你怎么制作出高逼格的专业流程图!
  5. 计算机流程图设计教程,流程图制作工具分享,在电脑上就可以画图
  6. win7开机显示计算机无法启动,win7无法开机怎么办?解决开机报错代码C0000034的方法...
  7. Python GUI工具——取色器
  8. 51系列单片机寻址方式
  9. 重温计算机简史:IBM的风云父子兵和硅谷的诞生
  10. Python的mpl_finance模块从2020年已经提醒弃用,新mplfinance模块详解(一)