用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 相关文章推荐
IE下js调试工具Companion.JS
Oct 15 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
js网页滚动条滚动事件实例分析
May 05 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 Javascript
bootstrap模态框实现拖拽效果
Dec 14 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
JavaScript实现随机数生成器(去重)
Oct 13 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
webpack v4 从dev到prd的方法
Apr 02 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
layui数据表格跨行自动合并的例子
Sep 02 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
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
在python中安装basemap的教程
2018/09/20 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
python3 实现调用串口功能
2019/12/26 Python
Django 实现图片上传和下载功能
2020/12/31 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
编写strcpy函数
2014/06/24 面试题
环保专业大学生职业规划设计
2014/01/10 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
教师个人成长总结
2015/02/11 职场文书
务工证明怎么写
2015/06/18 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript