预检 CORS 请求无效,因为标头“content-type”不在 :allow_headers 中

Luk*_* Xu 1 elixir phoenix-framework angular

我目前有 Angular 2 前端和 Phoenix 后端。由于某种原因,我可以很好地执行 GET 请求。在凤凰城我有代码endpoint.ex

plug Corsica, origins: "*"
Run Code Online (Sandbox Code Playgroud)

这允许我执行 GET 请求,但是,当我尝试将 POST 请求发送到同一地址时,我的后端会吐出错误

Invalid preflight CORS request because the header "content-type" is not in :allow_headers
Run Code Online (Sandbox Code Playgroud)

我不确定是否需要从前端发送某些内容,或者是否需要从后端启用某些内容。

Dog*_*ert 5

正如错误消息所示,您需要将您想要的标头添加到Corsica 插件的access-control-allow-headers选项中:allow_headers

plug Corsica, origins: "*", allow_headers: ["content-type"]
Run Code Online (Sandbox Code Playgroud)

:allow_headers- 标头列表(作为二进制文件)。设置与预检请求一起使用的标头的值access-control-allow-headers。默认为[](不允许使用标头)。

来源