2016-10-21 55 views
1

我有一个编译的C二进制(setch),它采用的参数HIGH/LOW/OFF所以我想从javascript/jQuery的这样执行命令如setch OFF是否可以将空格字符传递给cgi?

$.get("cgi-bin/setch.cgi","OFF"); -or 
$.get("cgi-bin/setch OFF"); 

由于这是一个得到那么空间被编码成% 20,当然。然而,服务器然后尝试执行命令setch%20OFF和回报:

404未找到

没有程序执行,并返回我的消息参数:

没有参数

即所有路径,权限等都OK

我想在这里做不可能的事情吗?或者我错过了服务器(lighttpd)配置中的一些东西? 谢谢

回答

0

你想传递一个参数给CGI。做到这一点的方法不是将它们与空间分开,而是希望将参数放在“?”后面字符。然后,HTTP服务器将把问题后面的所有内容都存储在CGI可以读取的QUERY_STRING环境变量中。

I.e.

$.get("cgi-bin/setch?OFF"); 

在你的C程序中使用getenv("QUERY_STRING")来访问传递的参数。

检查https://en.wikipedia.org/wiki/Common_Gateway_Interface获取HTTP服务器为CGI程序设置的所有环境变量的列表。请务必将这些值视为不可信数据。

+0

非常感谢。我一直无法找到的关键是使用环境变量。现在好了... –

相关问题