【发布时间】:2011-01-21 05:43:51
【问题描述】:
这是我的控制器操作中的一个常见模式:
respond_to do |format|
format.html {}
format.js {
render :layout => false
}
end
即,如果请求不是 AJAX,我将在全新页面上的布局中发送 HTML 内容。如果请求是 AJAX,我将发送相同的内容,但没有布局(以便可以将其插入现有页面或放入灯箱等)。
所以我总是在format.js 部分返回HTML,但Rails 将Content-Type 响应标头设置为text/javascript。这会导致 IE 抛出这个有趣的小错误消息:
当然,我可以在每次执行此操作时设置响应的内容类型(或使用after_filter 或其他),但似乎我正在尝试做一些相对标准的事情,我不想添加额外的样板代码。
我该如何解决这个问题?或者,如果解决问题的唯一方法是更改响应的内容类型,那么实现我想要的行为的最佳方法是什么(即,发送具有非 AJAX 布局的内容和没有布局的相同内容对于 AJAX)而不必处理这些错误?
【问题讨论】:
-
呵呵,看来行号准确度不是 IE 的强项……
-
@Nick Craver 你是说 IE 有强项吗?
-
所以 Internet Explorer 将作为 text/javascript 返回的内容视为 text/javascript 是一个问题?
-
是的,尽管潜在的问题似乎是 Rails 假设您总是希望发送
text/javascript以响应从 javascript 发起的 HTTP 请求(我可能只是完全糊涂了)
标签: ruby-on-rails ajax internet-explorer content-type