我创建了一些凤凰应用程序,默认情况下似乎都不接受https请求。我收到错误[error] Cowboy returned 400 and there are no headers in the connection.
。 Http请求按预期返回数据。
答案 0 :(得分:1)
我认为您需要在相关config.exs
中配置应用的端点 - 例如:
config :my_app, MyApp.Endpoint,
http: [port: {:system, "PORT"}],
url: [scheme: "https", host: System.get_env("HOST"), port: 443],
force_ssl: [rewrite_on: [:x_forwarded_proto]]
其中System.get_env("HOST")
是您的应用的网址... localhost:4000
,就本地开发而言,我认为。
文档 - http://wsmoak.net/phoenix/Phoenix.Endpoint.html
然后你需要添加CORS插件 - https://github.com/mschae/cors_plug
我构建了一个凤凰应用程序作为API,我按照文档的说明,将它设置在我的路由器中,就像它们一样,或多或少:
pipeline :api do
plug CORSPlug, [origin: Application.get_env(:my_app, :client_url)]
plug :accepts, ["json"]
end
scope "/api", PhoenixApp do
pipe_through :api
resources "/articles", ArticleController
options "/articles", ArticleController, :options
options "/articles/:id", ArticleController, :options
end