#30059: DELETE request with payload makes subsequent request fail
-----------------------------------------+------------------------
               Reporter:  diurchenko     |          Owner:  nobody
                   Type:  Uncategorized  |         Status:  new
              Component:  Uncategorized  |        Version:  2.1
               Severity:  Normal         |       Keywords:
           Triage Stage:  Unreviewed     |      Has patch:  0
    Needs documentation:  0              |    Needs tests:  0
Patch needs improvement:  0              |  Easy pickings:  0
                  UI/UX:  0              |
-----------------------------------------+------------------------
 In my application I use a frontend component FilePond
 (https://pqina.nl/filepond/) to perform photo file uploads.
 FilePond uses its own server protocol to manage temp files on the backend
 and sends a photo ID as a payload for DELETE request. According to
 RFC7231: "payload within a DELETE request message has no defined
 semantics", but it isn't forbidden. Django development server can't
 process a request that follows DELETE with payload as it regards the
 payload to be a part of the next request's first line.
 For example when photo ID is '0', next request is logged like this:
 {{{
 "0POST /accounts/profile/photo/ HTTP/1.1" 405 0
 }}}
 Quick and dirty fix for my View subclass is:
 {{{
 def delete(self, request):
     # Drain the incoming buffer
     request._stream.read()
     ...
     return HttpResponse(status=204)
 }}}
 When incoming data are wholly consumed by DELETE handler, subsequent
 requests work as expected.

 Best regards,
 Dmytro Yurchenko

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30059>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.dcec4e4828ef2998117bc7c12994c509%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to