2016-10-21 56 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

非常感謝。我一直無法找到的關鍵是使用環境變量。現在好了... –

相關問題