论坛首页 编程语言技术论坛

link_to_remote 的IE执行问题

浏览 5407 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-29  
用link_to_remote来更新一个div内容,不过奇怪的是在FF中运行一切正常,但是IE6中,:complete =>"my_fun()"
中的my_fun就是不执行. 异步调用的内容也获得了.真奇怪

另外我是在form_remote_tag中加入了link_to_remote.

google了下,好像不少人同样遇到了在IE6中同样的问题. 都搞不清楚怎么回事. 也没有看到解决方法

我的xp2 刚刚装,IE6平时也不怎么用,基本上就是什么插件和什么配置都没有修改过.

有哪位同学遇到过这样问题,讨论下,到底出错在那里


   发表时间:2006-11-29  


找到这样一个解决办法

引用

I'm very new here so I might be leading you in the wrong direction but I had
a similar problem and after days of research, I finally found the answer. 

Look at the response headers.  If the content type header contains
;charset={encoding} there seems to be a problem with IE.  Try removing this.
Keep the content type... just remove the charset.


然后查看了下link_to_remote的response type header,的确和普通的不一样
普通的get,type header是 “text/html; charset=UTF-8”

link_to_remote却是"text/html;charset = utf-8; charset=UTF-8"

上面说去掉";charset={encoding} "就行,不过这个怎么去掉?rail中的那里的代码可以除去这个字符串?

0 请登录后投票
   发表时间:2006-11-29  
最终我还是找到了解决办法。解决方法是这样的。
在controller中加入下面的代码

after_filter :set_charset

def set_charset
    @headers["Content-Type"] = "text/html; charset=utf-8" 
end


强行设置content-type就可以了.

看来IE6的确是因为content type header的不同,导致了link_to_remote运行不正常,而且也不是我开始说的是:complete不执行,根本就是update不成功。
0 请登录后投票
   发表时间:2006-11-30  
我也碰到类似的情况,只是update了,但是回调显示的ajax不会去刷新页面。用的是RJS.
0 请登录后投票
   发表时间:2006-11-30  
alang 写道
我也碰到类似的情况,只是update了,但是回调显示的ajax不会去刷新页面。用的是RJS.


只要用到了Ajax.Updater就会出问题,而且是updater出错,并不是回调显示不去刷新页面,你可以在ie上装个web开发工具,察看下调用Ajax.Updater之后的被update的元素的各个变量,已经是完全出错了,都不知道装的什么内容了。

你用rjs解决方法也是上面的,在contorller中加入那些代码就可以了。
0 请登录后投票
   发表时间:2006-11-30  
我碰到过类似的情况。似乎是IE中的XMLHttpRequest在处理不合法的content-type的时候会出错,甚至吊死。
0 请登录后投票
   发表时间:2006-11-30  
BirdGu 写道
我碰到过类似的情况。似乎是IE中的XMLHttpRequest在处理不合法的content-type的时候会出错,甚至吊死。


的确是这个问题。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics