gpt4 book ai didi

ruby-on-rails - 在 response_to block 的 JS 部分返回 HTML 会在 IE 中引发错误

转载 作者:行者123 更新时间:2023-12-04 12:01:29 25 4
gpt4 key购买 nike

这是我的 Controller 操作中的常见模式:

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

即,如果请求是非 AJAX,我将在全新页面的布局中发送 HTML 内容。如果请求是 AJAX,我将发送相同的内容,但没有布局(以便它可以插入现有页面或放入灯箱或其他任何内容)。

所以我总是在 format.js 中返回 HTML部分,但 Rails 将 Content-Type 响应头设置为 text/javascript .这会导致 IE 抛出这个有趣的小错误信息:

alt text http://dl.dropbox.com/u/2792776/screenshots/Screen%20shot%202010-02-25%20at%205.13.49%20PM.png

当然,我每次都可以设置响应的内容类型(或使用 after_filter 或其他),但似乎我正在尝试做一些相对标准的事情,我不想添加额外的样板代码。

我该如何解决这个问题?或者,如果解决问题的唯一方法是更改​​响应的内容类型,那么实现我想要的行为的最佳方法是什么(即,发送带有非 AJAX 布局的内容和没有布局的相同内容)对于 AJAX)而不必处理这些错误?

编辑: This blog post has some more info

最佳答案

这对你有用吗?

respond_to do |format|
format.html { :layout => false if request.xhr? }
format.js {}
end

然后将响应调用为 HTML,而不是 JS
(不过我还没有测试过。)

基本上,request.xhr?是这个解决方案的关键

关于ruby-on-rails - 在 response_to block 的 JS 部分返回 HTML 会在 IE 中引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com