Ruby on rails Ajax请求返回(406不可接受)

Ruby on rails Ajax请求返回(406不可接受),ruby-on-rails,ajax,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-3.2,Ruby On Rails,Ajax,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 3.2,在我的Rails应用程序中,javascript模板profile.js.erb不会被渲染。我收到错误代码406不可接受。此模板应在视图星形配置文件中附加部分。Ajax请求是由jquery无限滚动插件发出的。这是我的密码 行动 def profile @page=params[:page] ||1 @videos=Video.all(:page=>@page) respond_to do |format| format.js format.html end end 查看

在我的Rails应用程序中,javascript模板profile.js.erb不会被渲染。我收到错误代码
406不可接受
。此模板应在视图星形配置文件中附加部分。Ajax请求是由jquery无限滚动插件发出的。这是我的密码

行动

 def profile
 @page=params[:page] ||1
 @videos=Video.all(:page=>@page)
 respond_to do |format|
 format.js
 format.html
  end
end
查看星星#简介

<div id="content">
<div class="post">
<%=render 'videos'%>
</div>
Started GET "/stars/profile?page=2" for 127.0.0.1 at 2013-06-20 00:05:58 -0500
Processing by StarsController#profile as application/JavaScript
Parameters: {"page"=>"2"}
Completed 406 Not Acceptable in 65836ms
登录控制台

<div id="content">
<div class="post">
<%=render 'videos'%>
</div>
Started GET "/stars/profile?page=2" for 127.0.0.1 at 2013-06-20 00:05:58 -0500
Processing by StarsController#profile as application/JavaScript
Parameters: {"page"=>"2"}
Completed 406 Not Acceptable in 65836ms
Ajax设置

   jQuery.ajaxSetup({ 
  'beforeSend': function(xhr, settings) {
   xhr.setRequestHeader("Accept", "application/javascript");
   var token=$('meta[name="csrf-token"]').attr('content');
   xhr.setRequestHeader('X-CSRF-Token',token );
   settings['dataType'] = "javascript";
   settings['contentType'] = "application/javascript";
    }
}))

从日志: GET“/stars/profile?page=2”在profile之后不包含.js。所以rails不能在javascript中处理它


GET“/stars/profile.js?page=2”应该是调用。

StarController处理旁边的注释称profile为JSON。查看控制器中的格式,以确保它是html或js。如果格式是json,这就解释了为什么您会得到406,因为您的控制器没有处理该格式。当我添加format.json来解决
406错误代码
,但我需要profile.js.erb来渲染而不是json时,我想您必须在请求中将accept头设置为
application/javascript
,不知道怎么做,检查我更新的问题,看看我的ajax设置。控制台日志中的配置文件现在显示javascript。格式仍然不匹配吗?查看实际生成请求的代码片段可能也很有用。