日期:2014-05-17  浏览次数:20418 次

ajax返回字符串的比较
JScript code

if(XMLHttp.readyState==4&&XMLHttp.status==200)
{
    var a=XMLHttp.responseText;
    a=a.replace(/\r\n/g,""); 
    var b="success";
    if(a!=b)
    {
        document.getElementById("status").innerHTML=a;
    }
    else
        eval("alert('添加成功');window.location='test2.php';");
}


后台页面时echo "success";,返回的是"\r\nsuccess",然后经过正则替换后,成了"success",但是还是和b不相等,怎么回事呀,换成什么字符都是。

------解决方案--------------------
var a=XMLHttp.responseText; 这行下面加上:
alert(a); //弹出什么。贴出来。
------解决方案--------------------
看一下 a和b的length属性是否相同
如果照你说的 alert(a) 弹出的值显示的是 \r\nsuccess
那么它实际的内容应该是
JScript code
   var a = "\\r\\nsuccess";
   var b = "success";

------解决方案--------------------
或者你可以用正则匹配来判断:
 var b=/success/g;
if(!b.test(a))
{
document.getElementById("status").innerHTML=a;
}
else
eval("alert('添加成功');window.location='test2.php';");
------解决方案--------------------
var a=XMLHttp.responseText;
alert('[' + a + ']');
说说都看到了什么

只有弄清楚了返回的是什么,才能判断是什么问题
瞎猜是没有意义的