1. Html通过ajax获取cgi返回的数据
function HtmlGetCgiData()
{$.ajax({type: 'POST', //提交方法url: 'cgi-bin/wg67_key_in/wg67_key_in_reflush.cgi', //调用到的cgi程序data: "ajax", //发送的数据,不可缺失该项,不能为空(空:ajax执行失败)dataType: "text", //不可缺失ContentType: "application/text; charset=utf-8", success: function (returnedData, status){if(status == "success"){ //判断是否有返回值(returnedData:cgi返回值)alert(returnedData);}else{alert("刷新失败");}},error: function (msg){alert("ajax执行失败");}});
}
cgi端数据返回:
cout << "I am cgicc..." << endl;
cout << "html alert show cgicc return data." << endl;fprintf(stdout, "%s\n", "I am cgic...");
fprintf(stdout, "%s\n", "html alert show cgic return data.");//结论:html通过ajax获得的是 cgi标准输出 的数据。
注意:ajax操作,依赖库:jquery
网址:jquery下载所有版本(实时更新)
<script src="SpryAssets/jquery-3.5.1.min.js"></script>// 1)最好是下载到本地,加入到工程中,再引入到代码中
// 2)也可以使用网络url,直接引入到自己的代码中,不需要下载js文件
2. cgicc通过其库中一系列的get函数,获取html相关标签的值
此处,以 “表单form” 在执行 “submit” 时,获取表单中全部 “input 标签” 值为例。
// time_sync.cgivoid TestMode()
{Cgicc formData; //加载Cgicc,获取Cgicc对象//获取 input标签 值const vector<cgicc::FormEntry>& form_entries = formData.getElements(); //getElements()函数,获取该from表单中全部 input标签cout << "form_entries.size()=" << form_entries.size() << endl;for (vector<cgicc::FormEntry>::size_type i=0; i<form_entries.size(); ++i){const cgicc::FormEntry& form_entry = form_entries[i];//打印每个 input标签 中 name属性 和 value属性值cout << "getName=" << form_entry.getName() << "; getValue=" << form_entry.getValue() << endl;}
}
html表单:
<script>
function TimeSynSubmit(obj)
{......obj.action="/cgi-bin/time_sync/time_sync.cgi?submit";obj.submit();
}
</script>
<form id="form2" name="form2" method="post"><tr><td class="ys12">时间服务器IP:</td><td><input name="time_server_ip" type="text" id="time_server_ip" value="" size="20" maxlength="15" /></td></tr><tr><td class="ys12">同步周期(1-1440min):</td><td><input name="time_cycle" type="text" id="time_cycle" value="" size="20" maxlength="4" /></td></tr><tr><td> </td><td> </td></tr><tr><td><script type="text/javascript">document.write("<input type=\"submit\" name=\"button_submit\" id=\"button_submit\" value=\"提交\" onclick=\"return TimeSynSubmit(this.form);\" />"); </script></td></tr>
</form>
注解:
1)cgicc的安装和使用,可以参考:Cgicc搭建交叉编译环境(移植到arm)-CSDN博客
2)cgicc手册:参考:https://www.cnblogs.com/aquester/p/10064335.html