这一刻令人兴奋。

本文记录了解决在Linux环境下使用HTML前端、CGI后端及Apache服务器搭建的简单登录程序中出现的问题。主要解决了无法访问CGI导致的500错误及XML返回信息比较失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      情景介绍, 我花了一天多,坐在电脑前,怀着期待和绝望,把在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值