前言
公司做網上促銷活動,需要充值換取相應的抽獎資格,抽獎可以獲得豐厚的禮品,而且抽獎資格門檻有點高,領導下達命令保證活動的正常上線與運行,領導很重視,就這樣,在領導的安排下進行了相關活動的coding。。。
正文
開發過程倒還順利,只是轉盤抽獎耽誤了點時間,不過最后還是正常制作完畢,相關測試人員也進行了測試,活動上線開始倒計時,心里有那么點忐忑。
果不其然,活動上線2分鍾,一個玩家在沒有任何充值,而且抽獎資格也是0的情況下,抽了5,6次,都獲得了比較給力的禮品,這是查看數據庫記錄得到的結果,由於活動上線會隨時關注,便及時發現了這個問題,再看抽獎資格為-6,我了個去,明明在抽獎之前就已經做了驗證,不可能是抽獎驗證出了問題,估計是充值接口的問題,於是讓同事再查看一下充值接口,結果沒有任何問題,其實用腦袋想想也知道,不可能是充值接口的問題,因為玩家根本一毛錢也沒沖,就和充值接口的一毛錢關系也沒有,好吧,那么問題來了。。。是不是驗證出現問題了?
翻看代碼,設置斷點
進入方法之后,走了741行,再進行下一步,直接執行到了754行,我去,什么情況,這樣result的值就成了null了,后面的判斷也就不起作用了;
就這樣調試了N遍,后台ashx文件也查看了,如果是后台ashx程序有問題,那么應該走error,但是沒有走,這就說明程序根本沒有走后台,好吧,一個同步異步的思想,陡然出現在了腦海里,於是乎,在上面這段代碼加了一句,如下:
斷點走起,OK,一切正常,該做的驗證都通過了,好吧,問題終於解決了。
幸虧及時發現問題,及時解決了問題,否則,我該吃炒魷魚了。。。
其實只是解決了前端問題,根本問題沒有解決,看了園友的評論,才意識到服務端沒有做驗證,慚愧,慚愧,現在已做了服務端的驗證,多謝各位園友提醒!,此處用醒目的顏色提醒自己,以后不要再犯同樣的錯誤,另一個,避免我的錯誤言論誤導了其他園友,請多諒解!(此為園友評論后新增)
知識點與總結
1.Jquery中的ajax在默認不寫async情況下,請求為異步請求;即:async:true;
2.如果項目中在做一項操作之前要進行ajax的驗證,無論同步或者異步,都必須在驗證通過后,方才進行其他操作。
3.熟練應用error參數,關注返回來的異常信息,從而判定程序的錯誤位置;
4.項目前端做驗證,后端也做相應的驗證;前端做驗證是為了減少服務器壓力和增加用戶體驗,后端做驗證才是為了安全。(看各位園友的評論,新加的一條;)