Tôi hiện đang đối mặt với một vấn đề nhỏ với các biểu mẫu bài đăng HTTP và lịch sử pushstate.history.pushstate và HTTP POST form repost
Khi người dùng của tôi gửi biểu mẫu POST trong example.com/page-1
và sau đó nhấp vào liên kết trong trang này, họ được chuyển hướng đến example.com/page-2
bằng history.pushstate. Tập lệnh JS chỉ thay đổi url hiện tại, đẩy cũ vào lịch sử, và sau đó hiển thị nội dung mới. Điều này làm việc hoàn toàn tốt cho tôi.
Vấn đề: Khi người dùng đang example.com/page-2
và làm mới trang (ctrl + r hoặc làm mới nút), Chromes nhắc nhở người dùng gửi biểu mẫu một lần nữa; nhưng biểu mẫu đã thực sự ở số example.com/page-1
và không có lý do gì để hỏi lại nó trong trang "mới" này.
Có cách nào để xóa tất cả dữ liệu được gửi trước đó trong javascript trên thay đổi cửa sổ popstate để ngăn chặn nhắc nhở đăng lại từ trình duyệt không? Hay tôi đang thiếu cái gì đó với trạng thái lịch sử của tôi? Hay là một cái gì đó hiện chưa được trình duyệt thực hiện tốt?
Tôi chỉ thử nghiệm nó bằng chrome vì tôi không triển khai pushstate với các trình duyệt khác.
Xin chào, tôi đã gặp vấn đề tương tự với replaceState, nhưng bây giờ tôi gửi biểu mẫu của mình qua Ajax để giải quyết vấn đề. Tôi đoán rằng bằng cách sử dụng javascript history.pushstate và replacestate mà không gửi biểu mẫu thông qua ajax không phải là một điều tốt để làm vì nó khá dễ dàng để làm như vậy với jquery, mootools vv – pafounet