使用Ajax时在firefox错误控制台出现"未组织好"错误的解决办法
以下是从网上找到的方法,个人认为不是很好.后边有我自己的解决方法.
就是我自己写的一个ajax类,能正确返回结果,也能正确通过json解析数据,但是在firefox的错误控制台里边却总是有错误——“未组织好”出现。虽然程序能正确运行,但总让人觉得不爽。在google里边用“ajax 未组织好”搜索,虽然也有类似的问题,但是竟然没有人给出答复。
今天突发奇想,下载了firefox的英文版本,然后在里边调试同样的网页,发现也存在同样的错误,不过终于可以见到“未组织好”的英文名称了——"not well-formed",于是,在google里边搜“ajax not well-formed”,果不其然,一会就找到问题的解决方案了。
大家可以看看这个页面:http://ajaxagent.org/modules/newbb/viewtopic.php?topic_id=85&forum=1。其中的关键性解决方案如下:
I finally found the solution to this problem!! That was a very tough one to crack.
For now, in your agent.php, commment out the line
xmlHttpObject.overrideMimeType('text/xml');
So it should look like
//xmlHttpObject.overrideMimeType('text/xml');
I'll fix this one in the next release.
Thanks,
Steve Hemmady
Ajax Agent Team
也就是说,把xmlHttpObject.overrideMimeType('text/xml');类似的语句注释掉就OK了,在我的ajax类中试了一下,在firefox中果然看不到错误信息了。
还是英文世界的技术资料要全面一些呀,所以,作了一个小小的决定,firefox就改用英文版了。
因为,我们使用Web Service或者使用Ajax时,传输数据多数时候我们都是做用XML格式.因此,把MimeType设置语句去掉,有时候会造成,不必要的麻烦.因此,我的解决方法是,把打开的控制台窗口关了.效果也就和没有打开一样.在Ajax的回调函数中加入如下代码:
if(!window.console) {
window.console = {
log: function() {
alert(arguments[0]);
}
}
}
因为,我使用的是Jquery框架,因些,只要在文档中加入如下代码就可以了:
$(document).ajaxSuccess(function(){
If(!window.console)
{
Window.console={
Log:function()
{
alert(arguments[0]);
}
}
}