今天的事件
發生在推薦獎金後台
業務反映送出申請表單時
畫面會出現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事件