Ajax: IE and Mozilla Errors you need to know about

本文探讨了在使用Ajax技术时,Internet Explorer和Mozilla浏览器中常见的两种错误:“Automation server can't create object”及“NS_ERROR_NOT_AVAILABLE”。文章详细分析了这两种错误产生的原因,并提供了相应的解决方法。
URL:http://radio.javaranch.com/pascarello/2006/02/07/1139345471027.html

Ajax: IE and Mozilla Errors you need to know about

If you are logging clientside errors, your may see two errors show up with Ajax applications. The first error is with IE: "Automation server can't create object" and the second error was Mozilla: "NS_ERROR_NOT_AVAILABLE". Now I will tell you what causes them.

Automation server can't create object

Well this error commonly will show up with IE6.0 in your logs. This is a really simple error to reproduce. Set your security level to high and then enable active scripting (JavaScript). Run your application. If you get an error, that means you are not using try catches when you are setting the ActiveX object. So if you see this error you just need to add try catches around your declaration. Basic example is below:

try{
this.req=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){

}

NS_ERROR_NOT_AVAILABLE

This error took a little investigation on my part. So I did a search on bugzilla and came up with this link:https://bugzilla.mozilla.org/show_bug.cgi?id=238559#c0

So you do not have to search through the whole page I posted the problem with Mozilla and why it causes the error:

<quote from https://bugzilla.mozilla.org/show_bug.cgi?id=238559#c0>

Mozilla calls onload() for all HTTP transactions that succeeded. The only
time it calls onerror() is when a network error happened. Inside the onerror
handler, accessing the status attribute results in this exception:

Error: [Exception... "Component returned failure code: 0x80040111
(NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111
(NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
file:///Users/chuck/errtest.html :: anonymous :: line 114" data: no]
Source File: file:///Users/chuck/errtest.html
Line: 114
</quote>

Now an easy fix for now is to add another try catch in your onerror function when you are reading the status property. This will stop the error occuring, but thanks to this, you will not have all of the information that you could have with IE.

Error Handling

On of the best things you can do is implement error handling on your clientside applications. Logging them to the server can let you spot problems that you may never see. You may never new about these errors on your site if they never came up in testing. Logging problems will allow you to see them. I am doing a talk on this at The Ajax Experience in May.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值