1

我有一个基于ruby on rails 3.0.9的遗留网站,它适用于Firefox,Chrome和IE 8,但是我收到HTTP 406每当我使用Internet Explorer 9检查网站时发生错误。我将问题缩小至respond_to + format.js + render :update三重奏,但直到现在我还没有设法解决问题。使用渲染时,导轨3.0和Internet Explorer 9.0的HTTP 406错误:更新

我创建一个小例子用于再现:

来自控制器的动作:

def change 
    if params[:kind] 
     respond_to do |format| 
     format.js do 
      render :update do |page| 
      # originally we have a much more complicated logic here 
      # ... 
      page.replace_html 'list_of_numbers', :partial => params[:kind] 
      # we even have this: 
      # page << "changePrefix();" 
      end 
     end 
     end 
    end 
    end 

的视图:

<%= link_to("odd", url_for(:controller => "main", :action => "change", :kind => "odd"), :remote => true) %> 
<%= link_to("even", url_for(:controller => "main", :action => "change", :kind => "even"), :remote => true) %> 
<div id="list_of_numbers"><%= render :partial => "odd" %><div> 

在服务器端我看到这一点:

开始GET“/ change?kind = odd”为10.0.8.9,在周三1月4日11时10分59秒 +0100 2012处理由MainController#变化HTML参数:{“种” =>“奇”}完成406无法接受在0毫秒

而IE 9表示完全一样。

任何想法为什么这不适用于IE9?

回答

0

事实证明,与轨道3.0.9交付的prototype.js的版本1.7_rc2render :update有一些问题。在使用最新的prototypejs稳定版本(1.7.0)后,问题消失了。