用Fundebug插件記錄網(wǎng)絡請求異常的方法
在服務端,不管我們使用Node.js、Java、PHP還是Python等等,都會用日志以文本的形式記錄請求以及報錯信息。這個對于后端做事后分析是很有用的。
另一方面,前端有時候出問題其實是因為后端接口報錯,返回數(shù)據(jù)異常導致。而實際上,前端才是用戶直接觸及的端,所以出了問題,首先是在前端體現(xiàn)出來,首先也是找前端。

為了更好地定位問題是前端代碼還是接口問題,在這里推薦使用Fundebug的前端JavaScript監(jiān)控插件。該插件從0.1.0之后,就開始支持HTTP請求錯誤的監(jiān)控。
例子
為了測試,我寫一個簡單的例子。沒有用到任何復雜的框架,就是一個簡單的HTML加上網(wǎng)絡請求的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創(chuàng)建一個JS監(jiān)控項目,并拷貝接入代碼:

完整代碼如下所示:
<!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訪問該頁面。

點擊頁面上的click按鈕,就會觸發(fā)這個錯誤。在Fundebug的控制臺可以看到報錯信息,如下所示:

點擊該錯誤,可以查看報錯詳情。一個http的get請求訪問http://127.0.0.1:8080/example/,然后返回404。當然,http的請求錯誤類型有很多,不僅可以抓404, 什么401啊,403啊,500啊等等都能抓過來。

另外,通過用戶行為也可以很好地看到觸發(fā)報錯的過程:

跨域問題
如果訪問的是非同源的請求,那么報錯會拿不到狀態(tài)碼,也就是說status不會是404,而是0。
總結
監(jiān)控HTTP請求錯誤有什么好處?
第一時間發(fā)現(xiàn)HTTP請求出現(xiàn)狀況;
及時告知后端服務器出了問題,快速應對;
分析前端其它bug的時候多了一份信息參考;
用戶反饋服務無法使用的時候,可以快速知道問題原因。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
js實現(xiàn)鍵盤上下左右鍵選擇文字并顯示在文本框的方法
這篇文章主要介紹了js實現(xiàn)鍵盤上下左右鍵選擇文字并顯示在文本框的方法,涉及javascript操作鍵盤事件及文本框的相關技巧,非常簡單實用,需要的朋友可以參考下2015-05-05
如何用uni-app實現(xiàn)頂部導航欄顯示按鈕和搜索框
本文介紹了如何用uni-app實現(xiàn)頂部導航欄顯示按鈕和搜索框,感興趣的同學,可以參考下,并且試驗一下。2021-06-06
WEB前端開發(fā)框架Bootstrap3 VS Foundation5
WEB前端開發(fā)框架Bootstrap3 VS Foundation5,這篇文章主要介紹了Bootstrap3與Foundation5的五大區(qū)別,感興趣的小伙伴們可以參考一下2016-05-05
深入理解javascript函數(shù)參數(shù)與閉包
函數(shù)是javascript的一等對象,想要學好javascript,就必須深刻理解函數(shù)。本文對javascript函數(shù)參數(shù)與閉包進行詳細分析介紹。需要的朋友一起來看下吧2016-12-12
javascript延時重復執(zhí)行函數(shù) lLoopRun.js
javascript延時重復執(zhí)行函數(shù) lLoopRun.js...2007-06-06
javascript與webservice的通信實現(xiàn)代碼
關于javascript與webservice的通信,從理論上來說實現(xiàn)應該不難,主要是將服務器端的xml數(shù)據(jù)進行一個簡單的處理然后以一種適當?shù)男问秸宫F(xiàn)成來。2010-12-12
Uniapp微信小程序實現(xiàn)全局事件監(jiān)聽并進行數(shù)據(jù)埋點的方法
niapp起源?uni-app是一個使用Vue.js開發(fā)所有前端應用的框架,下面這篇文章主要給大家介紹了關于Uniapp微信小程序實現(xiàn)全局事件監(jiān)聽并進行數(shù)據(jù)埋點的相關資料,需要的朋友可以參考下2022-11-11

