2009-06-10 83 views

回答

2

三種方式:POST,GET或cookie。你使用哪個取決於你的情況。

POST:在頁面中包含一個帶有兩個隱藏字段的表單。發生事件時,用JS變量填充隱藏的字段,並將表單提交給cgi程序。

GET:讓JS將變量粘貼到URL上。當用戶點擊鏈接時,它激活一個JS功能。 JS函數將瀏覽器發送到「cgi-prog.cgi?JSvar1 = foo & JSvar2 = bar」

cookies:JS一旦確定了變量,就會在用戶的機器上設置一個cookie。 Perl讀取該cookie以獲取變量。

+0

好觸發我的思想去思考不同的方式。 謝謝suveshpratapa – joe 2009-06-10 14:47:35

2

服務器上的CGI PROG運行和JavaScript是在瀏覽器中,對不對? 也許你應該通過URL(GET)或HTTP Post將變量傳遞給服務器?

2

其他人建議的方法,如HTTP GET,POST,查詢字符串,隱藏的表單字段和cookie都非常好。但爲了更多的巧妙和交互性,請考慮使用AJAX。

我們有一個網絡應用程序,而不是在瀏覽器端使用Javascript,當點擊某些內容時,通過AJAX將一些數據發送到服務器端腳本。這與你所做的相似嗎?如果是這樣,那麼AJAX就是要走的路。

下面的例子使用GET將送東西回一個Perl CGI腳本(位於「URL」):

var request = new XMLHttpRequest(); 
request.open("GET", url, false); 
request.send(null); 

if(!request.getResponseHeader("Date")) { 
var cached = request; 
request = new XMLHttpRequest(); 
var ifModifiedSince = cached.getResponseHeader("Last-Modified"); 
ifModifiedSince = (ifModifiedSince) ? 
     ifModifiedSince : new Date(0); // January 1, 1970 
    request.open("GET", url, false); 
    request.setRequestHeader("If-Modified-Since", ifModifiedSince); 
    request.send(""); 
    if(request.status == 304) { 
    request = cached; 
    } 
} 

當然,永遠不要自己寫這個東西。這只是爲了說明發生了什麼。總是使用一個好的Javascript庫來做AJAX的東西。有很多好的東西在那裏: List of modern AJAX Libraries and Frameworks

+0

有趣的答案和謝謝。最後我可以這個方法哪個好 – joe 2009-06-10 14:55:49