Câu hỏi này hơi phức tạp bởi vì nó làm cho hai khái niệm trở nên phức tạp. Đầu tiên là POST và thứ hai là Ajax. POST, so với GETting, là một phương thức HTTP khác nhau với các thực thi và ngữ nghĩa khác nhau. Ajax, hoặc XmlHttpRequest, có đối tác của nó trong yêu cầu/điều hướng bình thường. Bạn có thể sử dụng POST hoặc GET cho cả XmlHttpRequest và điều hướng bình thường và gửi biểu mẫu (tốt, POST luôn là "gửi biểu mẫu"). Sự khác biệt giữa XmlHttpRequest và các yêu cầu bình thường là một yêu cầu bình thường sẽ thay thế trang bằng một trang mới.
Bạn có thể viết về bất kỳ trang web nào chỉ sử dụng Ajax để lấy dữ liệu và thay đổi DOM; đó chính là cách Gmail hoạt động. Không có "hình thức đệ trình" theo nghĩa truyền thống. Nhưng vẫn còn GET và POST vì máy chủ và trình duyệt giải thích các kết quả khác nhau. GET được coi là idempotent; POST có nghĩa là cho các hoạt động thay đổi trạng thái trên máy chủ. Ví dụ: giao dịch ecom phải là POST. Điều này không thay đổi khi sử dụng Ajax vì bạn muốn các máy chủ proxy cũng hiểu rằng đây là POST và chúng không nên cố gắng lưu lại phản hồi.
Ngoài ra còn có những ưu điểm và nhược điểm khi sử dụng GET so với POST. Bạn không thể đánh dấu các kết quả của POST vì các tham số bị ẩn. Bạn không thể GET một cái gì đó với các giá trị tham số có độ dài không giới hạn vì IE chỉ hỗ trợ khoảng 2000 ký tự.
Ngoài ra còn có những nhược điểm khi sử dụng Ajax so với gửi bình thường; bạn không thể đánh dấu trang kết quả (vì trang không thay đổi); nút quay lại sẽ không hoạt động như mong đợi. Nhưng với Ajax, bạn có thể giảm thiểu dữ liệu được chuyển và cũng cung cấp các cập nhật thuận tiện cho một trang (chẳng hạn như theo dõi trạng thái của một quá trình dài) mà không gây phiền nhiễu nhấp nháy hoặc làm mới.
Tóm tắt hai loại yêu cầu, Ajax và gửi biểu mẫu truyền thống, cả hai có thể được sử dụng với GET và POST, và có ưu và khuyết điểm cho mỗi loại. Cả hai loại đều có thể làm mọi thứ khác có thể và vì vậy bạn có thể mong đợi để xem một kết hợp cho tương lai gần.
Nguồn
2009-01-23 16:43:41
Tôi không nghĩ về điều đó, điểm tốt. – kemiller2002
jQuery sẽ tự động tạo nội bộ iframe và biểu mẫu trong iframe và POST biểu mẫu đó nếu phát hiện tệp tải lên trong yêu cầu Ajax. –
Mặc dù vậy, đó vẫn là POST, đó là quan điểm của tôi. – Welbog