用Fundebug插件记录网络请求异常的方法


Posted in Javascript onFebruary 21, 2019

在服务端,不管我们使用Node.js、Java、PHP还是Python等等,都会用日志以文本的形式记录请求以及报错信息。这个对于后端做事后分析是很有用的。

另一方面,前端有时候出问题其实是因为后端接口报错,返回数据异常导致。而实际上,前端才是用户直接触及的端,所以出了问题,首先是在前端体现出来,首先也是找前端。

用Fundebug插件记录网络请求异常的方法

为了更好地定位问题是前端代码还是接口问题,在这里推荐使用Fundebug的前端JavaScript监控插件。该插件从0.1.0之后,就开始支持HTTP请求错误的监控。

例子

为了测试,我写一个简单的例子。没有用到任何复杂的框架,就是一个简单的HTML加上网络请求的JS。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Test HTTP Request</title>
</head>
<body>
  <h1>This is a test for HTTP request error !</h1>
  <button onclick="loadRequest()">Click</button>
</body>
<script type="text/javascript">
function loadRequest() {
  var oReq = new XMLHttpRequest();
  oReq.open("GET", "http://127.0.0.1:8080/example/");
  oReq.send();
}
</script>
</html>

然后,在Fundebug创建一个JS监控项目,并拷贝接入代码:

用Fundebug插件记录网络请求异常的方法

完整代码如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Test HTTP Request</title>
</head>
<body>
  <h1>This is a test for HTTP request error !</h1>
  <button onclick="loadRequest()">Click</button>
</body>
<script type="text/javascript">
function loadRequest() {
  var oReq = new XMLHttpRequest();
  oReq.open("GET", "http://127.0.0.1:8080/example/");
  oReq.send();
}
</script>
<script src="https://js.fundebug.cn/fundebug.1.0.3.min.js"
    apikey="YOUR-API-KEY"></script>
</html>

使用http-server命令直接运行(推荐小技巧:使用npm install -g http-server安装一个简单的服务器。),在浏览器输入地址http://127.0.0.1:8080访问该页面。

用Fundebug插件记录网络请求异常的方法

点击页面上的click按钮,就会触发这个错误。在Fundebug的控制台可以看到报错信息,如下所示:

用Fundebug插件记录网络请求异常的方法

点击该错误,可以查看报错详情。一个http的get请求访问http://127.0.0.1:8080/example/,然后返回404。当然,http的请求错误类型有很多,不仅可以抓404, 什么401啊,403啊,500啊等等都能抓过来。

用Fundebug插件记录网络请求异常的方法

另外,通过用户行为也可以很好地看到触发报错的过程:

用Fundebug插件记录网络请求异常的方法

跨域问题

如果访问的是非同源的请求,那么报错会拿不到状态码,也就是说status不会是404,而是0。这个比较蛋疼!

总结

监控HTTP请求错误有什么好处?

第一时间发现HTTP请求出现状况;

及时告知后端服务器出了问题,快速应对;

分析前端其它bug的时候多了一份信息参考;

用户反馈服务无法使用的时候,可以快速知道问题原因。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
Jun 24 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
详解javascript函数写法大全
Mar 25 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 13 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 #Javascript
利用vue重构有赞商城的思路以及总结整理
Feb 21 #Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
Feb 21 #Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
Feb 21 #Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
Feb 21 #Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
Feb 21 #Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
Feb 21 #Javascript
You might like
PHP浮点数精度问题汇总
2015/05/13 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
详解webpack+express多页站点开发
2017/12/22 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
vue实现拖拽进度条
2021/03/01 Vue.js
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
python读取xlsx的方法
2018/12/25 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
python爬虫实现获取下一页代码
2020/03/13 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
个人自我评价和职业目标
2014/01/24 职场文书
求职信范文怎么写
2014/01/29 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
会计简历自我评价
2015/03/10 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
唐山大地震观后感
2015/06/05 职场文书
行政复议答复书
2015/07/01 职场文书
校园运动会广播稿
2015/08/19 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL