IE8忽略了rails 3.1的ajax响应

时间:2011-09-27 15:18:12

标签: jquery ajax internet-explorer-8 ruby-on-rails-3.1

我正在使用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它运行良好。

谢谢!

Pd积。我也试过了format.js { render :layout => false, :content_type => "text/javascript" },但仍然无效。

2 个答案:

答案 0 :(得分:1)

它是否也出现在其他版本的资源管理器中,较新版本的旧版本?

您是否在执行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

答案 1 :(得分:0)

我刚刚找到解决方案调试jquery_ujs远程调用。问题在于charset响应(我认为)。 出于某种原因,我必须明确指出:

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

请不要使用IE8:D