Khi tôi thực hiện yêu cầu XÓA XÓA với ứng dụng django. nó trực tiếp trả về một phản hồi 301 (Đã chuyển vĩnh viễn) và chuyển hướng tôi đến GET yêu cầu cùng một url. Tôi đoán rằng yêu cầu Http PUT sẽ trả lại 301 giống như yêu cầu DELETE. Có cách nào để xử lý yêu cầu DELETE với django?Http Xóa yêu cầu đối với django trả về 301 (Đã di chuyển vĩnh viễn)
Trả lời
Các chuyển hướng là do APPEND_SLASH thiết lập:
APPEND_SLASH
Mặc định: Đúng
Khi đặt thành True, nếu URL yêu cầu không phù hợp với bất cứ mẫu trong URLconf và nó không kết thúc bằng dấu gạch chéo , chuyển hướng HTTP được cấp cho cùng một URL với dấu gạch chéo nối thêm. Lưu ý rằng chuyển hướng có thể khiến bất kỳ dữ liệu nào được gửi trong yêu cầu POST bị mất bị mất.
Đảm bảo máy chủ và máy khách của bạn nhất quán với dấu gạch chéo.
Nếu dự án của bạn không cần dấu gạch chéo ở tất cả (nghĩa là, nó là một api không có dấu gạch chéo) bạn có thể tắt nó. Nếu không, hãy đảm bảo urlconf của bạn chấp nhận đường dẫn mà không có dấu gạch chéo.
Tùy chọn này đã được cấu hình cho thành phần tài nguyên $ từ angularJS 1.30.beta6 https://github.com/angular/angular.js/commit/3878be52f6d95fca4c386d4a5523f3c8fcb04270 – AlexandruC
Cảm ơn dude, bạn đã cứu ngày của tôi! –
Tôi gặp sự cố này khi sử dụng AngularJs và Django REST.
Django Rest đã chuyển hướng ứng dụng khách để yêu cầu URL có dấu gạch chéo trong khi AngularJS '$resource
đảm bảo không có dấu gạch ngang theo sau trên URL của nó. Điều này được mô tả trong số này issue
Trên cùng một liên kết, bạn sẽ thấy đề xuất sử dụng dịch vụ $http
linh hoạt hơn thay vì $resource
. Nhưng ... Tôi thực sự muốn sử dụng $resource
(ít mã hơn).
Vì vậy, giải pháp là tầm thường, kể từ khi đội Django còn lại đã chiếm recently này:
router = DefaultRouter(trailing_slash=False)
http://django-rest-framework.org/api-guide/routers.html
(Tôi đã thêm vào này để tôi blog vì tôi muốn giữ một bản ghi của một vài gotchas sử dụng AngularJS & Django REST)
- 1. Wordpress 301 Đã chuyển Phản hồi vĩnh viễn theo yêu cầu của Jquery.post
- 2. 301 Đã di chuyển vĩnh viễn sau khi tải lên S3
- 3. HttpServletResponse sendRedirect vĩnh viễn
- 4. Yêu cầu Node.js trả lại 301 chuyển hướng
- 5. Nhà cung cấp dịch vụ trả lời do lỗi: 301 (Đã chuyển vĩnh viễn) - API Twitter 1.1
- 6. Máy chủ Django vĩnh viễn
- 7. Magento: cách xóa tất cả các chuyển hướng vĩnh viễn
- 8. vĩnh viễn Xóa Thư mục
- 9. Chuyển hướng vĩnh viễn từ http đến https page
- 10. Làm cách nào để thực hiện tuyến chuyển hướng 301 vĩnh viễn trong ASP.Net MVC
- 11. django: sự khác biệt giữa chuyển hướng tạm thời và chuyển hướng vĩnh viễn là gì?
- 12. Cuộn vĩnh viễn UITableView
- 13. Gửi http xóa yêu cầu
- 14. Xóa Tệp kê khai ứng dụng HTML5, Vĩnh viễn
- 15. Bật tất cả các lệnh đã tắt vĩnh viễn
- 16. Xóa vĩnh viễn MailMessage trong Outlook bằng VBA?
- 17. Biến PowerShell vĩnh viễn
- 18. vĩnh viễn "Không tìm thấy tệp"
- 19. Xóa một thư mục vĩnh viễn khỏi git
- 20. Xóa thư vĩnh viễn bằng cách sử dụng java
- 21. HTTP Xóa với yêu cầu Cơ quan hành
- 22. Xóa tệp vĩnh viễn và bảo mật trên CentOS
- 23. yêu cầu http với powershell
- 24. đúc vĩnh viễn vào một lớp cha
- 25. Làm cách nào để xóa vĩnh viễn (xóa) các tệp khỏi lịch sử?
- 26. Khởi động Máy chủ Kafka Vĩnh viễn
- 27. Cách cập nhật vĩnh viễn iptables
- 28. Yêu cầu DELETE HTTP
- 29. Tải trọng yêu cầu HTTP
- 30. Yêu cầu đối với .htaccess phải trả về 404 thay vì 403
Có thể bạn đang thiếu dấu gạch chéo sau trong url cho DELETE? –
Bạn có thể xác nhận xem giao diện có liên quan đang được tải không? Có thể đặt một bản ghi bên trong khung nhìn để xác nhận nó đang được nạp. Ngoài ra, điều này có thể được máy chủ web của bạn và không Django ở tất cả đó là chuyển hướng yêu cầu? –
Đó là vấn đề. Khách hàng của tôi là backbone.js và có vẻ như backbone.js không đặt dấu gạch chéo theo sau để tạo mô hình url. vì vậy trong urls.py, tôi đã thêm một cấu hình url khác mà không có dấu gạch chéo và nó hoạt động. – yilmazhuseyin