从JavaScript执行Perl CGI的问题

问题描述:

如何让我的Perl脚本能够从JavaScript窗口的'action'属性调用JavaScript执行?从JavaScript执行Perl CGI的问题

我使用的是其他人主要构建的脚本,其基本要点是我需要从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);} 
     }); 
    } 
} 

我弄不太清楚是什么“味精”或财产“d”是的,我甚至不知道我的形式应该是元素的地方是。那么我在这里错过了什么?

+3

你有什么问题? – ikegami

+0

您可以尝试使用jQuery文件下载插件下载该文件:http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/ –

+0

@Meloviz url:should是'/ cgi-bin/myPerlScript.cgi' – mkHun

事实证明,我并没有完全或正确地构建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!