Javascript 如何通过AJAX将html表单变量传递给perl脚本?
我试图通过Javascript 如何通过AJAX将html表单变量传递给perl脚本?,javascript,jquery,html,ajax,perl,Javascript,Jquery,Html,Ajax,Perl,我试图通过POST将html变量从列表菜单传递到perl脚本,但实际情况是jQueryajax()能够执行perl,而不包括从文档.getElementById获取的值。以下是我的HTML代码: Ran调查 请选择部门: --选择一个-- 丹佛 凤凰城西南 波特兰 南休斯顿 诺卡尔 西雅图 沃恩索卡尔 东方的 function surveyFunction(){ var div=document.getElementById(“列表”).value; $.ajax({ 类型:“P
POST
将html变量从列表菜单传递到perl脚本,但实际情况是jQueryajax()
能够执行perl,而不包括从文档.getElementById
获取的值。以下是我的HTML代码:
Ran调查
请选择部门:
--选择一个--
丹佛
凤凰城西南
波特兰
南休斯顿
诺卡尔
西雅图
沃恩索卡尔
东方的
function surveyFunction(){
var div=document.getElementById(“列表”).value;
$.ajax({
类型:“POST”,
url:“possurv.pl”,
数据:div,
成功:功能(结果){
$('#survfeedback').html(结果);
}
});
}
您需要在querystring中包含参数名称,以便为其赋值。我假设这应该遵循作为控件名称的标准实践。在这种情况下,您可以自己构建查询字符串:
data: 'division=' + encodeURIComponent(div),
或者,您可以发送一个对象,让jQuery将其序列化到querystring:
data: { division: div },
我们需要查看Perl程序的相关部分或其文档来回答这一问题,而不必猜测。我很惊讶,它能够执行Perl,因为XHR请求应该被表单提交取消。您忘记将
encodeURIComponent
应用于手动尝试的用户输入。谁说Perl程序要求输入类型为application/x-www-form-urlencoded
?可能只是检查请求主体,不需要命名参数。@simbabque-这将是一个非常奇怪的边缘情况。期望Perl获取application/x-www-form-urlencoded数据是一个合理的假设。@Quentin我同意,但这仍然是一个假设。Rory在他的第二句话中说了这句话,这很好。不过我还是想提一下,因为如果不看Perl代码,我们就无法知道@昆汀关于encodeURIComponent
的观点很好,谢谢-答案已更新。