如何识别408 HTTP-Statuscode?

时间:2011-11-10 13:04:01

标签: javascript firefox-addon http-status-codes

我正在开发一个firefox插件,如果状态代码是4xx或5xx错误,它会执行操作。 它现在运行得很好,但如果错误代码是408,它就不会采取行动。  Firefox给了我一个错误,但错误永远不会到达我的扩展名。

我的httpobserver看起来像这样:

observe: function(aSubject, aTopic, aData)
{       
    if (aTopic == 'http-on-examine-response') 
    {
        httpstatus = aSubject.responseStatus.toString();
        if(httpstatus.substr(0,1) in {4:1,5:1})
        {
          ...

我还尝试在设置httpstatus之后设置一个警告框(在if之前)它会警告除了408错误之外的所有代码。

有人知道怎么做吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

你的意思很可能不是“408 Timed Out”HTTP响应(如果代理服务器无法到达服务器就会发生)但NS_ERROR_NET_TIMEOUT - 如果Gecko无法到达服务器则会产生错误。仅当收到来自服务器的响应时才会触发http-on-examine-response通知,对于NS_ERROR_NET_TIMEOUT,情况并非如此。

不幸的是,通过观察者无法听到这样的错误。您可以使用progress listener,只要加载停止,onStateChange方法就会调用aStateFlags LOAD_STOP包括aStatus标记,NS_ERROR_NET_TIMEOUT作为频道状态{{{ 1}}在这种情况下)。