我正在开发一个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错误之外的所有代码。

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

最佳答案

您的意思很可能不是“ 408超时” HTTP响应(例如,如果代理服务器无法访问服务器,则会发生),而是NS_ERROR_NET_TIMEOUT-如果Gecko无法访问服务器,则由Gecko生成的错误。仅当收到来自服务器的响应时才触发http-on-examine-response通知,对于NS_ERROR_NET_TIMEOUT则不是这样。

不幸的是,观察者不可能听到这样的错误。您可以使用progress listener,只要加载停止,就会调用onStateChange方法,其中aStateFlags包括LOAD_STOP标志和aStatus是通道状态(在这种情况下为NS_ERROR_NET_TIMEOUT)。

关于javascript - 如何识别408 HTTP状态代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8079912/

10-09 19:54