У меня есть устаревший веб-сайт, основанный на ruby on rails 3.0.9, который прекрасно работает с Firefox, chrome и IE 8, но я каждый раз получаю сообщение об ошибке HTTP 406 при проверке веб-сайта с помощью Internet Explorer 9. I сузил проблему до трио respond_to + format.js + render :update
, но мне до сих пор не удалось решить проблему.
Я создал небольшой пример для воспроизведения:
Действие с контроллера:
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 в ср. 04 января 11:10:59
+0100 2012 Обработка MainController # изменить как параметры HTML: {"kind" => "odd"} Выполнено 406 Недопустимо в 0ms
И IE 9 говорит то же самое.
Есть идеи, почему это не работает с IE9?