400 Error Bug事件
今天的事件
發生在推薦獎金後台
業務反映送出申請表單時
畫面會出現400錯誤
出現400錯誤不奇怪
奇怪的是
維運同仁照著截圖
輸入一模一樣的參數操作
不會出現Error
無法重現問題
有了上次的經驗
聽到關鍵字截圖
未看先猜又有空白
果不期然
只要參數最後帶入空白
就可以重現這個Bug
解決方式也很簡單
前端頁面加Trim就可以了
但令我不解的是
同一個畫面的其他API
一樣會帶著含空白的參數
為啥只有最後一隻API會壞
前端就是個簡單的後台
是用cshtml加上簡單的JQuery
把畫面的資料撈出來
拿去打後端API
後端也是再單純不過的三層式專案
如果是被框架攔截的400 Error
基本上就跟Service層之後的邏輯無關
問題應該是在Controller層
前後端都是我寫的
卻卡了一陣子
不知道問題在哪裡
最後再仔細看了一下Controller層
突然發現壞掉的那隻API是POST
其他API都是GET
如果參數帶在網址
的確有空白也沒關係
所以就如同截圖一樣
GET的資料可以正常顯示在畫面上
但最後送出的POST會抱錯
結論
自己做的東西還是比較容易有盲點啊
下回預告
加個Debug Log
卻造成系統性災難
所有產品名稱都顯示空白
不科學的Bug要如何處理
下一回
資料空白Bug事件
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Frank's Talk!