用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 相关文章推荐
js 利用image对象实现图片的预加载提高访问速度
Mar 29 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
node.js插件nodeclipse安装图文教程
Oct 19 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
vue2.0.js的多级联动选择器实现方法
Feb 09 Javascript
VUE 3D轮播图封装实现方法
Jul 03 Javascript
前端axios下载excel文件(二进制)的处理方法
Jul 31 Javascript
小程序api实现promise封装过程解析
Nov 21 Javascript
javascript将扁平的数据转为树形结构的高效率算法
Feb 27 Javascript
Vue列表循环从指定下标开始的多种解决方案
Apr 08 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
PHP pear安装配置教程
2016/05/14 PHP
yii2安装详细流程
2018/05/23 PHP
PHP7新增函数
2021/03/09 PHP
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JSONP之我见
2015/03/24 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
详解Vue 换肤方案验证
2019/08/28 Javascript
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python django生成迁移文件的实例
2019/08/31 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
Python如何实现定时器功能
2020/05/28 Python
python 通过文件夹导入包的操作
2020/06/01 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
动物学专业毕业生求职信
2013/10/11 职场文书
个人承诺书
2014/03/26 职场文书
小学先进集体事迹材料
2014/05/31 职场文书