用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 相关文章推荐
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
Ext GridPanel加载完数据后进行操作示例代码
Jun 17 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
Bootstrap每天必学之日期控制
Mar 07 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 Javascript
js实现贪吃蛇小游戏(容易理解)
Jan 22 Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 Javascript
使用vue构建一个上传图片表单
Jul 04 Javascript
浅谈node的事件机制
Oct 09 Javascript
Vue.js的动态组件模板的实现
Nov 26 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循环语句笔记(foreach,list)
2011/11/29 PHP
PHP重定向的3种方式
2013/03/07 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python程序设计入门(5)类的使用简介
2014/06/16 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
python 并发下载器实现方法示例
2019/11/22 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
python实现二分查找算法
2020/09/18 Python
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
优秀班组事迹材料
2014/12/24 职场文书
培训感想范文
2015/08/07 职场文书
2016年母亲节寄语
2015/12/04 职场文书
教师个人教学反思
2016/02/23 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android