Chức năng xoá tin liên quan đến Ajax

Xin chào mấy bro, em đang vừa học vừa làm 1 dự án laravel nhỏ và đang xử lý phần xoá Tin liên quan đến Ajax. Em mới chỉ nghiên cứu 1 ít JQuery để sử dụng Ajax nên cũng chưa thông vài vấn đề cho lắm. Em lấy dữ liệu từ Model sau đó hiển thị danh sách tin ra View thông qua Controller, sau đó em làm chức năng xoá tin bằng Ajax, ban đầu dùng $.post nhưng lại vướng vào lỗi csrf_token nên đổi sang $.get, làm phần xoá $.get thành công nhưng lại vướng vào lỗi không load lại danh sách trang tin( Cái này em hiểu là dùng Ajax không load lại trang nhưng lại thấy hơi phế phế vì vẫn còn nguyên cái tin mới xoá trên danh sách).
Mấy bro giải đáp 2 thắc mắc trên giúp em và gợi ý cho e 1 vài trường hợp thường dùng Ajax với ạ. Em cảm ơn nhiều.

Bạn phải tự render lại trang chỗ callback :smiley:

Mà xóa tin thì không dùng GET đâu, ít nhất cũng là POST, nhưng đúng nhất là DELETE.

2 Likes

Thì bạn phải thiết kế một webapi nữa chuyên làm tác vụ trả về danh sách của bạn, thêm 1 cái $.get nữa thôi. Có danh sách mới rồi, bạn xóa element cũ đi và thay bằng element mới từ danh sách mới.

Khi bạn truyền html về cho client thì bạn dùng lệnh php sinh ra một cái csrf_token, bỏ nó vào lệnh set cookie trong response header, nhớ đặt nó là http only. Sau này khi bạn gọi ajax bất kì lúc nào, csrf_token sẽ được tự động gửi kèm về server. Cái này thuộc phạm trù bảo mật, tham khảo: https://laravel.com/docs/5.8/csrf (rất tiếc bạn phải đọc Tiếng Anh phần này vì vấn đề bảo mật web thì các tài liệu ở Việt Nam mình chả thấy cái nào ra hồn cả).

GET, POST là chuẩn để nhận dạng và lọc webapi request, tuân theo cái này thì cuộc đời dev của bạn sẽ bớt khổ hơn.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?