2010-02-18 42 views
5

Đây là từ jQuery tài liệu API:Tôi có nên sử dụng POST hoặc DELETE động từ trong jQuery.ajax() chức năng

typeString Mặc định: 'GET' Các loại yêu cầu để thực hiện ("POST" hoặc " GET "), mặc định là" GET ". Lưu ý: Các phương thức yêu cầu HTTP khác, chẳng hạn như PUT và DELETE, cũng có thể được sử dụng tại đây, nhưng chúng không được tất cả các trình duyệt hỗ trợ.

Tôi sẽ tạo liên kết xóa AJAX với jQuery. Những gì tôi muốn biết là chi tiết cụ thể về hỗ trợ trình duyệt cho DELETE và PUT. Trình duyệt nào hỗ trợ nó? Có an toàn hơn khi tôi đi với POST không?

Cho rằng tôi làm việc trong ASP.NET MVC tôi có thể trang trí các hành động điều khiển của tôi với cả DELETE và POST để cả hai đều có thể được chấp nhận.

+2

Trùng lặp: http://stackoverflow.com/questions/165779/are-the-put-delete-head-etc-methods-available-in-most-web-browsers –

Trả lời

5

Đi kèm với POST. Bạn không phải lo lắng về việc hỗ trợ trình duyệt và những người duy trì mã của bạn trong tương lai sẽ hiểu những gì đang diễn ra tốt đẹp.

+3

Không chỉ hỗ trợ trình duyệt mà còn hỗ trợ máy chủ . DELETE không thường thấy bên ngoài WebDAV (http://en.wikipedia.org/wiki/Webdav) – Powerlord

-3

Nếu tất cả các bạn đang làm là xóa một mục với một ID nhất định, GET nên phù hợp với mục đích của bạn: http://www.diffen.com/difference/Get_vs_Post

Chỉ cần chắc chắn rằng bạn xử lý một trường hợp ai đó cố gắng để xóa cái gì đó đã bị xóa

+7

GET là một điều ** xấu ** để làm khi URL của bạn thao tác một số lưu trữ liên tục như một DB. Điều gì sẽ xảy ra nếu một công cụ tìm kiếm theo dõi nó? –

+0

Không có cách nào để GET. Rủi ro bảo mật. – mare

+0

Bạn không nên thực hiện xóa thông qua GET, điều đó ngụ ý rằng không có dữ liệu nào được sửa đổi ... – Nate

1

Bạn có thể đi với POST sau đó đặt một trường biểu mẫu có tên là X-HTTP-Method-Override thành DELETE.

Xem SO câu hỏi # 467.535 cho ví dụ cụ thể:

Is it possible to implement X-HTTP-Method-Override in ASP.NET MVC?

+0

Câu trả lời đó đã lỗi thời. Điều này được xây dựng vào MVC 2. –

0

Extract từ giá trị hình thức và gửi yêu cầu, hãy gọi Html.HttpMethodOverride (HttpVerbs.Delete) trong mẫu.

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