如何访问Javascript全局变量到CGI程序谢谢, Chells
答案 0 :(得分:2)
cgi prog在服务器上运行,你的javascript在浏览器中,对吗? 也许您应该通过URL(GET)或HTTP Post?
将变量传递给服务器答案 1 :(得分:2)
三种方式:POST,GET或cookies。你使用的取决于你的情况。
POST:在页面上包含一个带有两个隐藏字段的表单。当事件发生时,用JS变量填充隐藏字段并将表单提交给cgi程序。
GET:让JS将变量添加到URL上。当用户单击链接时,它会激活JS功能。 JS函数将浏览器发送到“cgi-prog.cgi?JSvar1 = foo& JSvar2 = bar”
cookies:一旦确定了变量,JS就会在用户的机器上设置一个cookie。 Perl读取cookie以获取变量。
答案 2 :(得分:2)
其他人建议的方法,如HTTP GET,POST,查询字符串,隐藏表单字段和cookie都非常好。但是为了获得更多的技巧和交互性,请考虑使用AJAX。
我们有一个Web应用程序,而不是在浏览器端使用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