""400 Bad Request
Your client has issued a malformed or illegal request. "
我在arm上配置了boa 服务器,其主目录为/www/,cgi-bin目录为/www/cgi-bin
我写了一个html网页,名称为callCgi.html,功能是实现点击form按钮,调用在cgi-bin下面的一个用c写好的输出“你好”的cgi程序,该脚本名称为hellorld.cgi。
问题如下:
首先,我在浏览器上直接输入调用这个c脚本,输出结果正常,即浏览器输入10.1.0.79/cgi-bin/helloworld.cgi,浏览器可以显示正常的输出结果
但是当在浏览器中用html的form调用时,就出现问题了,我在浏览器中输入10.1.0.79/callCgi.html,起内容可以显示,但是我点击call想调用c脚本的时候,出现了如下错误:
"400 Bad Request
Your client has issued a malformed or illegal request. "
解决办法:callCgi.html代码:
<HTML>
<HEAD>
<HEAD>
<BODY>
<FORM ACTION="/cgi-bin/helloworld.cgi" METHOD=POST>
<INPUT TYPE=submit VALUE=call>
</FORM>
</BODY>
</HTML>
发觉BOA不支持POST请求,将POST修改为GET就可以运行了
原因:boa是支持post的,看一下你的boa.conf的配置,出现错的时候儿,首先要查看error.log的错误日志文件,可以很好的定位你的问题。
另外就是,CGI获取GET和POST方法传递的URL是不同的,CGI获取GET方法的url是通过QUERY_STRING,而CGI获取POST方法的url是通过stdin。