2012-05-31 33 views
5

Ứng dụng của tôi vô hiệu hóa bộ nhớ đệm trên trình duyệt thông qua các tiêu đề phản hồi và sau đó sử dụng mẫu Đăng-Chuyển hướng-Nhận để bật nút quay lại để "lấy lại" trang hiện tại.
Tuy nhiên, khi thử lại điều này ngay bây giờ với Firefox 12 và IE 8, tôi không thấy kết quả mong đợi (hoặc tôi đã thấy trước đó với IE 6).Hành vi nút quay lại sau khi chuyển hướng sau-Nhận

Khi chọn nút quay lại, tôi có thể thấy trình duyệt đang cố thực hiện yêu cầu ban đầu (Bài đăng), không phải yêu cầu được chuyển hướng (Nhận). Khi tôi nhìn vào các yêu cầu trên tab mạng của Firebug tôi thấy như sau:

Post-Redirect-Get

Hình như trình duyệt xử lý các bài viết và Nhận như cùng một yêu cầu và do đó chọn nút quay lại được gửi lại Bưu:

Result of Back Button

tôi đang sử dụng JSF, nhưng tôi nghĩ rằng đây là một vấn đề trình duyệt. Có ai biết tại sao trình duyệt không thực hiện một trang chuyển hướng không?

Trả lời

4

Nó hoạt động tốt. Nút quay lại thực hiện lại yêu cầu trước "POST accountDetails.xhtml" không được liệt kê trong ảnh chụp màn hình đầu tiên của bạn, nhưng theo ảnh chụp màn hình thứ 2 có vẻ (và hợp lý) là "GET accountDetails.xhtml". Bạn đang rõ ràng trong đậu liên kết với xem đó hoặc trong một số bộ lọc làm một số kiểm tra và chuyển hướng đến "registrationWelcome.xhtml". "POST accountDetails.xhtml" trong ảnh chụp màn hình đầu tiên là yêu cầu hiện tại đã được chuyển hướng đến "reviewInfo.xhtml".

Nút quay lại không thực hiện lại chuyển hướng. Đó là mã của riêng bạn. Nút quay lại cũng không thực hiện lại yêu cầu POST, được xác nhận trong ảnh chụp màn hình thứ 2.

+0

Cảm ơn bạn BalusC, Bạn chính xác, yêu cầu trước "POST accountDetails.xhtml" là "Get accountDetails.xhtml". Chỉ cần làm rõ sự hiểu biết của tôi, bạn đang nói rằng nút quay lại xem xét "POST accountDetails.xhtml -> GET reviewInfo.xhtml" là cùng một yêu cầu (và yêu cầu hiện tại) và do đó yêu cầu trước đó "GET accountDetails.xhtml" được thực thi bằng nút quay lại? – Paul

+1

Nút quay lại sẽ chỉ thực hiện lại 'GET reviewInfo.xhtml' thay vì' POST accountDetails.xhtml' khi nút quay lại được nhấn trong trang tiếp theo * sau * bạn đã điều hướng khỏi 'reviewInfo.xhtml'. Nút quay lại thực sự không thực hiện lại yêu cầu hiện tại. Nút làm mới thực hiện điều đó. Nếu không có PRG, nút làm mới sẽ bằng cách thực hiện lại POST. – BalusC

+0

Ý của bạn là "Không có PRG, nút ** quay lại ** sẽ thực hiện lại POST." – Paul

Các vấn đề liên quan