这一刻令人兴奋。

      情景介绍, 我花了一天多,坐在电脑前,怀着期待和绝望,把在linux下用HTML做前端登陆,CGI写后台程序,apache作为服务器,写的一个简单的登陆程序做好了。    

    期间遇到两大问题, 一个是怎么也访问不了cgi, 网页总是显示500错误(服务器错误);另一个是xml返回信息的字符串比较总是失败。

     第一个问题, 我修改了CGI文件权限(755), 没用; 检查又修改了路径,没用。 后来,和以前写的成功案例对比,发现少了个头文件,stdlib, 使得getenv返回的是整数。修改后,少了个错误,但是500问题依然存在。 我想到了绝望。 后来,我用FF调试,看看传递给后台的QUERY_STRING信息是什么,发现其中有陌生的字段%27, 我检查了前端网页的代码,原来在对xml请求的脚本里,我把open中的请求信息用单引号括起来, 然而这里不需要单引号, 

       xmlHttp.open("GET", "../cgi-bin/record/logInServer.cgi?userName='" + userNameElem.value + "'&passWord='" + passwordElem.value + "'", false);  这样写是错误的, 红色标记的单引号应该去掉。

      去掉后,500错误就没有了。

    第二个问题, 把服务器返回来的信息和js中的字符串比较。

    怎么比较, 我先创建了变量, 然后对返回来的信息进行空格消除,并赋值给该变量,最后和字符串比较。 比如:

    var str;

    str = xmlHttp.responseText.trim(); //消除空格

    if(str == "查询成功")

    {

      .......

    }

        注意:
    不能直接和"查询成功"比较,因为我接受的信息带有一个空格,也不能消除空格后直接比较, 因为typeof 消除空格后的类型的是未定义的。

原文地址:https://www.cnblogs.com/the-one/p/6589897.html