Ошибка выполнения Perl CGI из JavaScript

1

Как заставить скрипт Perl выполнять JavaScript из атрибута action?

Я использую скрипты, созданные другими людьми в основном, и основной смысл в том, что мне нужно вызвать CGI-скрипт из JS-функции.

Я должен сделать это таким образом, потому что это было лучшее, что я мог придумать, исходя из того, мобильное устройство или нет.

Мне нужно передать некоторые флажки в скрипт 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", и я даже не знаю, должна ли моя форма быть тем элементом, где она есть. Так что мне здесь не хватает?

  • 3
    Какие у вас проблемы?
  • 0
    Вы можете попробовать загрузить файл с помощью плагина загрузки файлов jQuery: johnculviner.com/…
Показать ещё 16 комментариев
Теги:
cgi

1 ответ

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!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню