2020-11-03|閱讀時間 ‧ 約 3 分鐘

Laravel Ajax Example

本文模擬user註冊的情境來簡單演示,在Laravel中如何透過ajax來存取資料,以post request為例。 前端透過post把user資料送到controller中,並且透過model把資料塞進DB,最後回傳json response。
程式碼如下:

如上圖,user輸入帳密後按下Register後,發出ajax post request送往UserController,成功將user新增至user table,並且回傳http response給前端。 其中,$.ajaxSetup是為了不用每次要送ajax request都要在header加上csrf token,透過這種方式,之後的request都會自動加上去。
另外,其實meta中不一定要放上csrf token,這只是為了讓js方便可以存取token而已,事實上只要request header中有帶即可,laravel後端收到request之後會比對跟session中的csrf token是否一致。

Note:
Laravel為了防禦CSRF攻擊,要求前端每次的request都必須加上csrf token,否則會出現419 (unknown status)。 如下圖,ajax request沒有帶上csrf token的結果:
分享至
成為作者繼續創作的動力吧!
小弟是一位軟體工程師,樂於幫助他人,撰寫技術文章除了幫助自己複習以外,也希望可以幫助到他人,若文章內容有誤,還請大大不吝給予指教!
© 2024 vocus All rights reserved.