iT邦幫忙

2021 iThome 鐵人賽

0
Modern Web

工作後才知道的後端 30 件小事系列 第 20

Laravel - jQuery AJAX 範例

  • 分享至 

  • xImage
  •  

最近滿常要把一般 form-submit 改成 AJAX 非同步去送表單,所以分享個 template。
非 Laravel 做的後端也適用

<form id="form">
    <!-- inputs -->
    <button type="submit" id="submit">
        submit
    </button>
</form>
<script>
    $('#submit').click(function(e){
        e.preventDefault();
        var form = new FormData(document.getElementById('form'))
        $.ajax({ 
            url: "/api/endpoint",
            data: form,
            type: 'post',
            processData: false, // important
            contentType: false, // important
            cache: false,
            success: function(data)
            {
                console.log(data)
                // redirect
                window.location.replace(data.redirect);
            },
            error: function(data)
            {
                // intergrate Swal to display error
                Swal.close();
                if (data.status == 419) {
                    window.location.reload();
                } else {
                    Swal.fire({
                        icon: 'info',
                        title: 'Error',
                        html: data.responseJSON.message,
                    });
                }
            }
        });
    })
</script>

Laravel Response 範例

  • json 看前端需要什麼,沒有一定規定
  • status code 可參考 HTTP 狀態碼,建議不要無腦 200
return response()->json([
    'message' => 'message ...',
    'redirect' => 'https://example.com/path'
], 200);

上一篇
面試題:什麼是 SQL injection?如何預防?
系列文
工作後才知道的後端 30 件小事20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言