silverdr
Receiving AJAX submitted Javascript's FormData object
When I try to AJAX-submit a form using JS FormData, like specified e. g. here:
I receive:
(Plug.Parsers.ParseError) malformed request, a Jason.DecodeError exception [...]
Do I have to serialise the whole form manually before submitting? Or is there a way to make Phoenix accept FormData stuff?
Marked As Solved
benwilson512
If you send down form data, you should use the content-type multipart/form-data not application/json. If Jason.DecodeError is being thrown Phoenix probably thinks it’s json, which means the content type header is likely the culprit.
Also Liked
silverdr
Thank you for pointing me out in the right direction so quickly. Actually I thought the “Content-Type” header was not set, in accordance with what is explicitly mentioned:
Warning: When using FormData to submit POST requests using
XMLHttpRequestor theFetch_APIwith themultipart/form-dataContent-Type (e.g. when uploading Files and Blobs to the server), do not explicitly set theContent-Typeheader on the request. Doing so will prevent the browser from being able to set the Content-Type header with the boundary expression it will use to delimit form fields in the request body.
but thanks to your response I quickly found that in fact it was, and moreover it was set to "application/json" indeed.








