众所周知,XMLHttpRequest对象的responseText属性包含客户端接收到的HTTP响应的文本内容。很多情况下,我们不仅仅在客户端单纯接收文本内容,还需要根据responseText属性的不同值来作出不同的逻辑处理。最常见的如用户登陆检验,当检验通过时,并不给出任何错误反馈(也即服务器端页面没有任何输出),而需要跳转到相应的页面(当然你也可以设置成功信息,不过没有必要,因为如果即时跳转的话,这个成功信息的提示也是转瞬间的事)。此时,我们可能会有如下的判断:
if (XMLHttpRequest.responseText == "")
{
// 跳转
}
这段代码在Windows下(也必须这样写)是没有问题的,如果没有任何输出,XMLHttpRequest.responseText属性值确实为空字符串"",但经测试,如果是在Linux下,则XMLHttpRequest.responseText属性值为空也即null,代码必须改为如下:
if (XMLHttpRequest.responseText == null)
{
// 跳转
}
综上所述,我们最终兼容性判断的代码如下:
if (XMLHttpRequest.responseText == "" || XMLHttpRequest.responseText == null)
{
// 跳转
}
if (XMLHttpRequest.responseText == "")
{
// 跳转
}
这段代码在Windows下(也必须这样写)是没有问题的,如果没有任何输出,XMLHttpRequest.responseText属性值确实为空字符串"",但经测试,如果是在Linux下,则XMLHttpRequest.responseText属性值为空也即null,代码必须改为如下:
if (XMLHttpRequest.responseText == null)
{
// 跳转
}
综上所述,我们最终兼容性判断的代码如下:
if (XMLHttpRequest.responseText == "" || XMLHttpRequest.responseText == null)
{
// 跳转
}