#30059 closed Bug (duplicate)
DELETE request with payload makes subsequent request fail
Reported by: | Dmytro Yurchenko | Owned by: | nobody |
---|---|---|---|
Component: | HTTP handling | Version: | 2.1 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
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
Change History (3)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
Component: | Uncategorized → HTTP handling |
---|---|
Resolution: | → needsinfo |
Status: | new → closed |
Type: | Uncategorized → Bug |
In any case, I think we need a test or some some sample code reproduce the issue.
comment:3 by , 6 years ago
Resolution: | needsinfo → duplicate |
---|
Hello! It is Django 2.1.4. I have checked it with master
branch and the bug is no longer reproducible. I assume #30015 is indeed a more general description (and fix) of the same issue. Thank you!
Are you using Django 2.1.4 by any chance? If that's the case then it's possible you are affected by #30015 which will be fixed in 2.1.5 by b514dc14f4e1c364341f5931b354e83ef15ee12d.