簡體   English   中英

如何在CGI中訪問Java腳本變量

[英]How to Access Java Script Variable in CGI

如何在CGI程序中訪問Javascript Gobal變量

謝謝,切爾斯

cgi prog在服務器上運行,而您的JavaScript在瀏覽器中,對嗎? 也許您應該通過URL(GET)或HTTP Post將變量傳遞給服務器?

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

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

GET:讓JS將變量添加到URL上。 當用戶單擊鏈接時,它將激活JS功能。 JS函數會將瀏覽器發送到“ cgi-prog.cgi?JSvar1 = foo&JSvar2 = bar”

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

其他人建議的方法(例如HTTP GET,POST,查詢字符串,隱藏的表單字段和cookie)非常好。 但是要獲得更多技巧和交互性,請考慮使用AJAX。

我們有一個Web應用程序,而不是在瀏覽器端使用Javascript的Web應用程序,當單擊某些內容時,該應用程序通過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任務。 有很多不錯的東西: 現代AJAX庫和框架列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM