#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 , 7 years ago
comment:2 by , 7 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 , 7 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.