Elixir Phoenix多部分文件上载导致415种不支持的媒体类型

Elixir Phoenix多部分文件上载导致415种不支持的媒体类型,elixir,phoenix-framework,Elixir,Phoenix Framework,我正在进行多部分上传。其请求头如下所示: Accept:application/json,text/javascript Accept-Encoding:gzip, deflate, br Accept-Language:en-US,en;q=0.9 Connection:keep-alive Content-Length:733 Content-Type:multipart/form-data; boundary=----WebKitFormBoundary9Am5omyM263xjTB2 H

我正在进行多部分上传。其请求头如下所示:

Accept:application/json,text/javascript
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.9
Connection:keep-alive
Content-Length:733
Content-Type:multipart/form-data; boundary=----WebKitFormBoundary9Am5omyM263xjTB2
Host:localhost:4200
Origin:http://localhost:4200
Referer:http://localhost:4200/users/asdf/profile
User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1
我得到了
415不支持的媒体类型
作为响应。但是,我相信Phoenix已配置为接受多部分请求。在我的配置中:

config :mime, :types, %{
  "application/vnd.api+json" => ["json-api"],
  "multipart/form-data" => ["multipart"]
}
在我的路由器中:

plug :accepts, ["json", "json-api", "multipart"]

知道发生了什么吗?我想知道这是否与在config/config.exs(例如xml)中配置mime项目后的接受编码有关:

然后运行
mix deps.clean--build mime
,强制在所有环境中重新编译mime。你现在该走了

您可以检查它是否被识别为mime类型,即:

iex -S mix
iex> MIME.extensions("application/xml")

原来问题是我通过ja_序列化程序传递请求。特别是由于。显然,这不是一个json:api请求,所以无论如何它都不应该通过管道传输到那里。

只是为了确认一下,在添加配置之后,您是否重新编译了
mime
?看,我有!虽然这是一个好机会。我开始认为这是因为
内容类型
附加了
boundary=--webkitformboundary9am5mymm263xjtb2
。您认为这可能会导致问题吗?您是否尝试删除
\u build
文件夹?谢谢,@ardhitama。这是因为我通过ja_序列化程序路由请求。不幸的是,错误仍然存在。还有其他想法吗?内容类型中是否存在
边界
iex -S mix
iex> MIME.extensions("application/xml")