我正在开发一个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/