对我司自研的前端监控系统的前端SDK进行总结
所有的请求第三方库都是基于xhr
、fetch
二次封装的,所以只需要重写这两个事件就可以拿到所有的接口请求的信息,通过判断status
的值来判断当前接口是否是正常的。举个栗子,重写xhr
的代码操作 。
private xhrReplace () {
if (!window.XMLHttpRequest) return
const xmlhttp = window.XMLHttpRequest
const _oldSend = xmlhttp.prototype.send
const _oldSetRequestHeader = xmlhttp.prototype.setRequestHeader
let startTime = 0
const _handleEvent = (event: any) => {
if (event && event.currentTarget) {
const currentTarget = event.currentTarget
const log: any = {
code: 0,
path: currentTarget.responseURL,
time: Date.now(),
duration: Date.now() - startTime
}
if (currentTarget.status !== 200) {
// 自定义错误上报
log.code = -1
log.page = wind