从xmlhttp.responseText获取布尔值

时间:2010-11-11 13:03:56

标签: javascript ajax

我有这样的代码用于设置变量isItemLocked的值。

 function authorItem(itemNumber){
    if (window.XMLHttpRequest)
                    {
                      xmlhttp=new XMLHttpRequest();
                    }else{
                        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    url ="Some URL";
                    xmlhttp.open("GET",url,true);
                    xmlhttp.send(null);
                    xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4) {
                        var isItemLocked = xmlhttp.responseText;
                        if(isItemLocked){
                            alert('Item has been Closed.Click OK to go to Search Page');
                            window.location = "SOME OTHER URL";
                        }else{
                            var url ="SOME OTHE URL 1";
                            location.href = url;    
                        }
                }
            }
 }

每次我要访问某些其他URL时,isItemLocked.But的返回布尔值为true。任何解决方案?

2 个答案:

答案 0 :(得分:4)

xmlhttp.responseText不返回布尔值,它返回一个字符串,"false"true

执行字符串比较。

if (isItemLocked === 'true') {
    // Do one thing
} else if (isItemLocked === 'false') {
    // Do a different thing
} else {
    // You have an unexpected response from the server and should handle the error
}

答案 1 :(得分:1)

试试这个:

var isItemLocked = xmlhttp.responseText.toString().toLowerCase() == "true";

responseText以字符串形式返回,因此您需要检查它是否等于字符串“true”