Javascript 轨道&x2B;AJAX返回的HTML比预期的多
我是Rails的新手,非常欣赏任何见解!更新Rails或Ruby的版本不是一个选项,我被要求使用客户端的当前版本 Ruby版本:1.9.3-p194,Rails版本:3.2.18 我通过JavaScript/jQuery Ajax调用加载动态HTML内容。当我从app/assets/javascripts/application.js内部调用Ajax时,一切都正常。这是电话:Javascript 轨道&x2B;AJAX返回的HTML比预期的多,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我是Rails的新手,非常欣赏任何见解!更新Rails或Ruby的版本不是一个选项,我被要求使用客户端的当前版本 Ruby版本:1.9.3-p194,Rails版本:3.2.18 我通过JavaScript/jQuery Ajax调用加载动态HTML内容。当我从app/assets/javascripts/application.js内部调用Ajax时,一切都正常。这是电话: $.ajax({ url: '/search/login', cache: true,
$.ajax({
url: '/search/login',
cache: true,
success: function(html){
console.log('SUCCESS: ', html);
}
});
名为html的响应变量包含/search/login.html.erb中的所有html
但是,如果我将该调用移到另一个JavaScript文件,例如app/assets/javascripts/search/jh.js,那么除了返回的HTML比预期的要多得多之外,一切似乎都正常。除了/search/login.HTML.erb中的内容外,它实际上还包含从
到
的整个HTML DOM树
有人能帮我理解为什么会发生这种情况吗?您需要指定您不希望为这种类型的ajax调用呈现布局,否则Rails将把它视为包含应用程序或模板布局的标准视图请求。为此,只需将以下内容添加到控制器中的渲染操作
render layout: false
这会告诉Rails只处理html.erb文件,而不使用为此控制器指定的应用程序布局或其他模板。您是否在控制器的render语句中尝试了
layout:false
?看起来更像是控制器问题,而不是jQuery问题。你能从search Controller发布这两种方法的代码:login
和jh
?@engineersmnky你搞定了!非常感谢你。如果你留下你的评论作为回答,我会选择它。再次感谢!