用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获取url参数的使用扩展实例
Dec 29 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
Javascript函数的参数
Jul 16 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
vue axios请求超时的正确处理方法
Apr 02 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 Javascript
微信小程序之数据绑定原理解析
Aug 14 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
js实现批量删除功能
Aug 27 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中与数组相关的函数
2007/03/22 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
JS实现简易计算器
2020/02/14 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
Python 虚拟空间的使用代码详解
2019/06/10 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
浅析python实现动态规划背包问题
2020/12/31 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
初一数学教学反思
2016/02/17 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
MongoDB数据库之添删改查
2022/04/26 MongoDB
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python