Javascript Boxy.js、XHR、Ruby-on-Rails
我正在使用Boxy.js将我的/注册页面调用到一个模式窗口中。我想是阿贾克斯。我希望页面在以这种方式调用时不使用布局呈现 我试过:Javascript Boxy.js、XHR、Ruby-on-Rails,javascript,ruby-on-rails,ajax,xmlhttprequest,boxy,Javascript,Ruby On Rails,Ajax,Xmlhttprequest,Boxy,我正在使用Boxy.js将我的/注册页面调用到一个模式窗口中。我想是阿贾克斯。我希望页面在以这种方式调用时不使用布局呈现 我试过: layout proc {|controller| controller.request.xhr? ? false: "application" } 以及: 在应用程序控制器中,我用谷歌搜索了一些代码片段,但它们不起作用/注册仍在进行布局 以下是Boxy调用/signup时的部分标题: 请求URL:http://localhost:3000/signup?_=13
layout proc {|controller| controller.request.xhr? ? false: "application" }
以及:
在应用程序控制器中,我用谷歌搜索了一些代码片段,但它们不起作用/注册仍在进行布局
以下是Boxy调用/signup时的部分标题:
请求URL:http://localhost:3000/signup?_=1301708866195
请求方法:获取
X-request-With:XMLHttpRequest最佳实践是使用Rails的js响应,如下所示:
respond_to do |format|
format.html
format.js { render :action_name, :layout => false }
end
但是,由于jQuery在默认情况下不会发送正确的XHR头,因此您需要在application.js中添加如下内容:
$.ajaxSetup({
headers : {
'Accept' : 'text/javascript',
'X-Requested-With' : 'XMLHttpRequest'
}
});
如果你想用一些又快又脏的东西,试试这个:
respond_to do |format|
format.html { render :layout => false if request.xhr? }
end
最佳实践是使用Rails的js响应,如下所示:
respond_to do |format|
format.html
format.js { render :action_name, :layout => false }
end
但是,由于jQuery在默认情况下不会发送正确的XHR头,因此您需要在application.js中添加如下内容:
$.ajaxSetup({
headers : {
'Accept' : 'text/javascript',
'X-Requested-With' : 'XMLHttpRequest'
}
});
如果你想用一些又快又脏的东西,试试这个:
respond_to do |format|
format.html { render :layout => false if request.xhr? }
end