Javascript 从rails呈现登录表单后触发回调
我正在用rails和客户端javascript构建一个单页应用程序。为了动态管理接口,我需要在返回登录表单视图(loginForm.html.erb)后触发回调(用于通过Bcrypt进行用户身份验证)。我尝试了jquery$.ajax请求,可以得到表单或json响应,但不能同时得到两者 以下是获取登录表单的请求:Javascript 从rails呈现登录表单后触发回调,javascript,jquery,ruby-on-rails,json,ajax,Javascript,Jquery,Ruby On Rails,Json,Ajax,我正在用rails和客户端javascript构建一个单页应用程序。为了动态管理接口,我需要在返回登录表单视图(loginForm.html.erb)后触发回调(用于通过Bcrypt进行用户身份验证)。我尝试了jquery$.ajax请求,可以得到表单或json响应,但不能同时得到两者 以下是获取登录表单的请求: loginMenuEl.on("click", function(event){ event.preventDefault(); $.ajax({ ur
loginMenuEl.on("click", function(event){
event.preventDefault();
$.ajax({
url: "http://localhost:3000/login",
type: "GET",
dataType: "json"
}).done(function(jsonData) {
self.initLoginButton();
self.processContent(jsonData);
}).fail(function(){
console.log("*** ajax fail L1 ***");
});
});
以下是相关路线:
get "/login" => "sessions#login"
get "/loginForm" => "sessions#loginForm"
get "/login_attempt" => "sessions#login_attempt"
post "/login_attempt" => "sessions#login_attempt"
以下是处理表单和json的会话控制器:
def login
@contentInfo = Content.find_by_id(1)
respond_to do |format|
format.html { render :loginForm }
format.json { render json: @contentInfo }
end
end
我尝试了其他版本的respond_来阻止,但表单从未返回:
format.html { redirect_to (:action => 'loginForm') }
format.html { redirect_to (action: 'loginForm') }
format.html { redirect_to action: 'loginForm' }
format.json { render json: @contentInfo }
我认为rails可以同时返回json和视图文件(loginForm.html.erb)rails不能同时返回html和json,一次只能返回一个。谢谢。我很害怕。有没有其他方法可以触发不涉及ajax的回调。。。将表单完全加载到中会触发什么?您是否尝试过在表单的ajax请求的成功回调中获取json数据?