亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于JavaScript短信驗證碼如何實現(xiàn)

 更新時間:2016年01月24日 11:46:58   作者:牦牛  
我們在使用移動、電信等運營商網(wǎng)上營業(yè)廳的時候,為確保業(yè)務的完整和正確性,經常會需要用到短信的驗證碼。最近因為某省業(yè)務需要,也做了個類似的功能

我們在使用移動、電信等運營商網(wǎng)上營業(yè)廳的時候,為確保業(yè)務的完整和正確性,經常會需要用到短信的驗證碼。最近因為某省業(yè)務需要,也做了個類似的功能。

原理很簡單,就是在用戶點擊"獲取驗證碼"的時候,Ajax獲取一串固定位數(shù)的數(shù)字,然后寫數(shù)據(jù)庫發(fā)短信,寫Cookie設置驗證碼的有效期。

JS請求驗證碼如下:

$.ajax({
type: "GET",
url: "../Ajax/smsrandcodetest.ashx?phone=" + phone.val() + "&smsCodeRand=" + num,
success: function(result) {
if (result == "Y") {
alert("驗證碼已發(fā)送至您輸入的手機號!有效期5分鐘");
RemainTime();
}
else {
alert("驗證碼獲取失?。≌堉匦芦@取");
}
},
error: function() { alert("error"); }
});
//獲取6位隨機驗證碼
function random() {
var num = "";
for (i = 0; i < 6; i++) {
num = num + Math.floor(Math.random() * 10);
}
return num;
}
//驗證碼有效期倒計時
function RemainTime() {
var iSecond;
var sSecond = "", sTime = "";
if (iTime >= 0) {
iSecond = parseInt(iTime % 300);
if (iSecond >= 0) {
sSecond = iTime + "秒";
}
sTime = "<span style='color:darkorange;font-size:13px;'>" + sSecond + "</span>";
if (iTime == 0) {
clearTimeout(Account);
sTime = "<span style='color:red;font-size:12px;'>驗證碼已過期</span>";
}
else {
Account = setTimeout("RemainTime()", 1000);
}
iTime = iTime - 1;
}
$("#endtime").html(sTime);
} 

前端要處理的工作基本如上,現(xiàn)在要在HttpHandler中添加邏輯了,為了防止Js生成的驗證碼不符規(guī)則,我們在后端重新生成一次:

if (smscoderand.Length != 6) //如果JS生成的隨機碼不符,則用C#生成隨機碼
{
smscoderand = GetRandom();
}
//寫短信數(shù)據(jù),發(fā)SMS
//寫Cookie,設置驗證碼有效期,比如5分鐘
//注:如果以上都處理成功,返回"Y",處理失敗,返回"N"

這里為了方便,驗證碼的有效期驗證就用Cookie來完成。在業(yè)務提交的時候,會獲取客戶端的這個Cookie,看是否存在,如果不存在肯定就是過期了。如果后續(xù)業(yè)務擴展可能會考慮加上數(shù)據(jù)庫的有效期驗證,以及一些其它的規(guī)則,比如一小時、一天內限制發(fā)送驗證碼的條數(shù)(總不能讓你無限制的發(fā)送短信吧) 等等。

以上所述是針對JavaScript短信驗證碼如何實現(xiàn)的詳細介紹,希望對大家有所幫助。

相關文章

  • 使用JS動態(tài)構建目錄樹

    使用JS動態(tài)構建目錄樹

    本文詳細講解了使用JS動態(tài)構建目錄樹的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 詳解基于DllPlugin和DllReferencePlugin的webpack構建優(yōu)化

    詳解基于DllPlugin和DllReferencePlugin的webpack構建優(yōu)化

    這篇文章主要介紹了詳解基于DllPlugin和DllReferencePlugin的webpack構建優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • JS組件系列之Bootstrap table表格組件神器【終結篇】

    JS組件系列之Bootstrap table表格組件神器【終結篇】

    Bootstrap Table是輕量級的和功能豐富的以表格的形式顯示的數(shù)據(jù),支持單選,復選框,排序,分頁,顯示/隱藏列,固定標題滾動表,響應式設計,Ajax加載JSON數(shù)據(jù),點擊排序的列,卡片視圖等。本文給大家介紹JS組件系列之Bootstrap table表格組件神器【終結篇】,一起學習吧
    2016-05-05
  • onkeypress字符按鍵兼容所有瀏覽器使用介紹

    onkeypress字符按鍵兼容所有瀏覽器使用介紹

    使用onkeypress字符按鍵兼容所有瀏覽器,感興趣的朋友可以參考下,希望對你學習js事件有所幫助
    2013-04-04
  • 微信小程序分包加載代碼實現(xiàn)方法詳解

    微信小程序分包加載代碼實現(xiàn)方法詳解

    這篇文章主要介紹了微信小程序分包加載代碼實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 純JS實現(xiàn)五子棋游戲兼容各瀏覽器(附源碼)

    純JS實現(xiàn)五子棋游戲兼容各瀏覽器(附源碼)

    純JS實現(xiàn)五子棋游戲同時兼容各個主流瀏覽器,感興趣的朋友可以下載源碼學習下也是對你js技巧的晉級
    2013-04-04
  • JS解決ajax無法后退的問題記錄

    JS解決ajax無法后退的問題記錄

    Ajax請求通常不支持瀏覽器的后退按鈕,因為它們是異步的,不會導致頁面重新加載(刷新),但如果你想要用戶能夠通過瀏覽器的后退按鈕回到之前的頁面狀態(tài),你可以通過幾種方法來解決這個問題,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • javascript 子窗體父窗體相互傳值方法

    javascript 子窗體父窗體相互傳值方法

    javascript 子窗體父窗體相互傳值方法,一般都是用window.open函數(shù),下面腳本之家給出具體的代碼。
    2010-05-05
  • echarts中tooltip添加點擊事件代碼示例

    echarts中tooltip添加點擊事件代碼示例

    這篇文章主要給大家介紹了關于echarts中tooltip添加點擊事件的相關資料,echarts tooltip點擊事件是指當用戶點擊圖表中的提示框(tooltip)時觸發(fā)的事件,需要的朋友可以參考下
    2023-07-07
  • JS如何獲取指定范圍內的隨機數(shù)含小數(shù)

    JS如何獲取指定范圍內的隨機數(shù)含小數(shù)

    這篇文章主要介紹了JS如何獲取指定范圍內的隨機數(shù)含小數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論