IE8 игнорирует ответ ajax с рельсами 3.1 - PullRequest
2 голосов
/ 27 сентября 2011

Я использую Rails 3.1 и AJAX для создания некоторых моделей.

Вид выглядит так:

<%= link_to 'Vote', votes_path, :method => :post, :remote => true %>

И контроллер:

...
def create
  ...
  respond_to do |format|
    format.js { render :layout => false }
  end
end
...

Наконец, .js.erb выглядит так:

alert('Hi there!');

В Chrome, FF и Safari он работает, как я и ожидал, создавая модель и отображая предупреждение. В IE8 он создает модель, но не выполняет javascript. Я думаю, что это странная проблема с jquery-rails или чем-то еще, потому что с Rails 3.0.9 это работает хорошо.

Спасибо!

P.D. Я также пытался format.js { render :layout => false, :content_type => "text/javascript" }, но все равно не работает.

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Это также происходит в других версиях Explorer, более новых и старых?

Вы отлаживали, если проблема во время выполнения вызова ajax или при его получении? Вы получаете сообщение об ошибке?

Включаете ли вы csrf_meta_tags в макет? Они могут действительно испортить вещи при выполнении POST.

http://apidock.com/rails/ActionView/Helpers/CsrfHelper/csrf_meta_tag

Я бы посоветовал вам использовать отладчик Internet Explorer 8:

http://blogs.msdn.com/b/jscript/archive/2008/03/13/jscript-debugger-in-internet-explorer-8.aspx

0 голосов
/ 28 сентября 2011

Я только что нашел решение отладки jquery_ujs удаленных вызовов. Проблема была с ответом кодировки (я думаю). По какой-то причине я должен указать явно:

format.js { render :layout => false, :content_type => "text/javascript; charset=UTF-8" }

Пожалуйста, не используйте IE8: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...