2015-09-26 54 views
14

我正在開發的phoenix webapp中出現以下錯誤。這是一個簡單的應用程序,只有幾個模型和一個頁面,所有模型創建表單都以多標籤形式添加。Phoenix日誌中的奇怪錯誤:正在運行MyApp.Endpoint終止

我在日誌中出現跟隨錯誤,但在瀏覽器的結束事情工作正常。從日誌中我也無法理解什麼是錯誤的以及如何進行調試。

[error] #PID<0.1603.0> running MyApp.Endpoint terminated 
Server: localhost:4000 (http) 
Request: GET/
** (exit) an exception was raised: 
    ** (Plug.Conn.AlreadySentError) the response was already sent 
     (plug) lib/plug/conn.ex:428: Plug.Conn.resp/3 
     (plug) lib/plug/conn.ex:415: Plug.Conn.send_resp/3 
     (my_app) web/controllers/personal_info_controller.ex:1: MyApp.PersonalInfoController.phoenix_controller_pipeline/2 
     (my_app) lib/phoenix/router.ex:265: MyApp.Router.dispatch/2 
     (my_app) web/router.ex:1: MyApp.Router.do_call/2 
     (my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.phoenix_pipeline/1 
     (my_app) lib/plug/debugger.ex:90: MyApp.Endpoint."call (overridable 3)"/2 
     (my_app) lib/phoenix/endpoint/render_errors.ex:34: MyApp.Endpoint.call/2 
     (plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4 
     (cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4 
+0

這是真正有用的(如@Gazier下面說的)這些種類的情況下,看代碼。 –

回答

19

當你複製一個響應你得到這個錯誤 - 當你有將派上一些錯誤的響應(沒有被記錄在例如用戶)的插頭,然後另一響應是從發送這種情況經常發生你的控制器行動。

沒有看到您的代碼,很難告訴您問題出在哪裏。發送回覆後,您可以使用Plug.Conn.halt/1來防止此錯誤。

例如

conn 
|> send_resp(404, "Post not found") 
|> halt