AJAX side project 這個是網路課程中學習的 side project,有註冊跟登入表單輸入。
這邊有後來參考github資源,用exprees建立此功能的資料庫來實現。Express-註冊與登入驗證 
概略流程:
addEventListener監聽 
function中用來取到輸入的帳號密碼的value,並將取得的帳號密碼的值塞回object中。 
var xhr = new XMLHttpRequest() 
xhr.open() 
xhr.setRequestHeader() 
xhr.send() - 內容要轉為字串 
用xhr.onload function (){} / 確保資料都跑完再執行function 
因為要判斷資料後再去執行所需的alert,在獲取資料前要先將json內格式從字串轉為陣列 
再利用物件中的”message”來判斷執行哪種alert 
 
註冊表單
註冊成功
已被使用得帳號
 
登入表單
登入成功
不存在或帳號已被使用
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <h3 > 註冊</h3 > 帳號: <input  type ="text"  name ="account"  class ="account"  /> <br  /> 密碼: <input  type ="password"  name ="password"  class ="password"  /> <br  /> <input  type ="submit"  value ="Register"  class ="send"  /> <h3 > 登入</h3 > 帳號: <input  type ="text"  name ="account"  class ="accountLogin"  /> <br  /> 密碼: <input  type ="password"  name ="password"  class ="passwordLogin"  /> <br  /> <input  type ="submit"  value ="SignIn"  class ="signIn"  /> 
在下面 js 中,從伺服器中比對送出的資料後,判斷格式中的 message 內容作出下一步的行為。
JSON 格式
Data:
{
    email: 'lovef2e@test.com',
    password: '12345678'
}
Success Response:
{
    "success": true,
    "result": {},
    "message": "帳號註冊成功"
}
Error Response:
{
    "success": false,
    "result": {},
    "message": "此帳號已被使用"
}
登入:
Data:
{
    email: 'lovef2e@test.com',
    password: '12345678'
}
Success Response:
{
    "success": true,
    "result": {},
    "message": "登入成功"
}
Error Response:
{
    "success": false,
    "result": {},
    "message": "此帳號不存在或帳號密碼錯誤"
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 var  send = document .querySelector(".send" );send.addEventListener("click" , signup, false ); function  signup (  var  emailStr = document .querySelector(".account" ).value;   var  passwordStr = document .querySelector(".password" ).value;      var  account = {};   account.email = emailStr;   account.password = passwordStr;   var  xhr = new  XMLHttpRequest();   xhr.open("post" , "註冊url" , true );   xhr.setRequestHeader("Content-type" , "application/json" );   var  data = JSON .stringify(account);   xhr.send(data);      xhr.onload = function (     var  callBackData = JSON .parse(xhr.responseText);     console .log(callBackData);     var  verifyStr = callBackData.message;     if  (verifyStr == "帳號註冊成功" ) {       alert("帳號註冊成功!!" );     } else  if  (verifyStr == "此帳號已被使用" ) {       alert("此帳號已被使用!!\n請更換帳號名稱並重新註冊" );     } else  {       alert("帳號註冊失敗!!" );     }   }; } var  signIn = document .querySelector(".signIn" );signIn.addEventListener("click" , signin, false ); function  signin (  var  emailStr = document .querySelector(".accountLogin" ).value;   var  passwordStr = document .querySelector(".passwordLogin" ).value;      var  account = {};   account.email = emailStr;   account.password = passwordStr;   var  xhr = new  XMLHttpRequest();   xhr.open("post" , "登入url" , true );   xhr.setRequestHeader("Content-type" , "application/json" );   var  data = JSON .stringify(account);   xhr.send(data);   xhr.onload = function (     var  callBackData = JSON .parse(xhr.responseText);     console .log(callBackData);     var  verifyStr = callBackData.message;     if  (verifyStr == "登入成功" ) {       alert("帳號登入成功!!" );     } else  {       alert("此帳號不存或帳號密碼錯誤!!" );     }   }; }