2010-11-04 37 views
7

Theo Tài liệu mùa xuân here:Yêu cầu phương pháp 'POST' không được hỗ trợ

While HTTP defines these four methods, HTML only supports two: GET and POST. Fortunately, there are two possible workarounds: you can either use JavaScript to do your PUT or DELETE, or simply do a POST with the 'real' method as an additional parameter (modeled as a hidden input field in an HTML form).

Họ đã làm sau này, và có thể đạt được với mùa xuân năm sau MVC hình thức thẻ:

<form:form method="delete"> 
    <input type="submit" value="Delete"/> 
</form:form> 

Các vấn đề là khi tôi nhấp vào 'Xoá' trang của tôi ném lỗi sau:

HTTP Status 405 - Request method 'POST' not supported 

Tôi ch anged mức debug của org.springframework.web để gỡ lỗi và thấy thông báo sau:

DEBUG AnnotationMethodHandlerExceptionResolver - Resolving exception from handler [[email protected]]: 
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 

tôi đã sử dụng RestClient với phương pháp DELETE và phương pháp được gọi như mong đợi. Tôi làm gì sai ở đây?

+0

tôi đã cố gắng POST như một tham số sử dụng RestClient và trở về một Mã trạng thái: 405 phương pháp không được phép. Vấn đề có thể ở đâu? – Joopiter

+0

Bạn có thể đăng bộ điều khiển của mình không? – hisdrewness

+0

@hisdrewness vâng tôi có thể, nhưng tôi không nghĩ rằng vấn đề là trong bản đồ url của Controller vì sử dụng RestClient hoạt động tốt. – Joopiter

Trả lời

5

Bạn cần phải cấu hình HiddenHttpMethodFilter trong web.xml của bạn

chi tiết có thể được tìm thấy here:

+0

Tôi đã cấu hình bộ lọc và đặt ánh xạ bộ lọc để chứa của Bộ điều phối Spring MVC, nhưng vẫn không hoạt động. Bất cứ một đề nghị nào khác? – Joopiter

+0

đã thay đổi thành * và nó hoạt động tốt. Có vẻ như sử dụng urlrewrite là một phần của vấn đề kể từ khi tôi thử ứng dụng /* bộ lọc này được xác thực trước tiên trước bộ lọc urlrewrite. Cảm ơn maximdim! – Joopiter

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