如何让 Perl 脚本从 HTML 表单的“action”属性调用的 JavaScript 执行?
我主要使用其他人构建的脚本,其基本要点是我需要从 JS 函数调用 CGI 脚本。
我必须这样做,因为根据设备是否移动,这是我能想到的最好的方法。
我需要将一些复选框传递给 Perl 脚本并根据复选框状态返回一些文件。我知道 Perl 脚本可以完美运行,无需执行 JavaScript,但我不知道如何在 Perl 中检查设备是否是移动设备,而我在 JS 中做到了。
我所需要的只是执行 CGI 脚本,向其传递与直接从表单调用它相同的信息,但它什么也不做。
这是我的 JavaScript:
function downloadFiles(){
var isMobile = function(){
try {document.createEvent("TouchEvent"); return true;}
catch(e) {return false;}
}
&& (/Mobi/i.test(navigator.userAgent));
if(!isMobile){
$.ajax({
type:"Post",
url:"https://www.mywebsite.com/cgi-bin/myPerlScript.cgi",
success:function(msg){$("#myHtmlForm").html(msg.d);}
});
}
}
我不知道“msg”或其属性“d”是什么,我什至不知道我的表单是否应该是它所在的元素。那么我在这里缺少什么?
最佳答案
事实证明,我没有完全或正确地构建 ajax 语句。我没有添加任何需要传递到 CGI 脚本中的数据。
这是我最终得到的 ajax 语句:
$.ajax({
type:"POST",
url:"/cgi-bin/myPerlScript.cgi",
data:$("#myHtmlForm").serialize(),
error:function badCall(){location.href="https://www.mywebsite.com/error.html";}
});
谢谢@ikegami、@mkHun、@simbabque 和@DaveCross!
关于javascript - 从 JavaScript 执行 Perl CGI 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732577/