を表示されない私は(私のログインフォームがモーダルであるため)リロードを防ぐためにjqueryのを使用して、提出フェニックスフォームにいくつかのカスタマイズをした、フォーム:JSフェニックス払い、「put_flash」
<form id="loginForm" role="form">
<input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
...
jQueryの
<script> document.getElementById("loginbutton").addEventListener("click", function(event){
event.preventDefault()
$.ajax({
url:'/auth/identity/callback',
type:'post',
data:$('#loginForm').serialize()
});</script>
そしてAuthControllerは、メインページを再レンダリングする必要があること、それがコールバックでサイト全体の新しいHTMLを送信しますが、それは実際のサイトに再レンダリングされません。
{:error, reason} ->
conn
|> put_flash(:error, "Could not authenticate. Error: #{reason}")
|> render(Final.PageView, "landingapp.html", current_user: current_user, current_auths: auths(current_user))
を
jquerys preventdefdefault()が理由:エラーフラッシュが表示されませんか?私は何が欠けていますか?
なぜjsonを使用して、ページを再レンダリングするのではなく、それに合わせて変更するのはなぜですか?単に '{" error ":"何らかの理由 "}"を返して、クライアント側でそれを処理して、エラーなどを表示してください – JustMichael