2016-11-22 101 views
1

如何讓我的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

回答

0

事實證明,我並沒有完全或正確地構建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!