简单....将perl变量传递给ajax成功?

时间:2015-08-14 20:59:09

标签: javascript ajax perl

任何人都可以告诉我如何将perl子程序中的变量传递回ajax的成功部分以进行进一步操作?

以下是更详细了解的代码

sub File_Check {
    print header('application/json');
    if (-e $filename) {
        my @file_check=();

        if (open(TXT,">>$filename")){
            close TXT;
            $file_check[0] = TRUE;} 
        else {
            $file_check[0] = FALSE;
        } 

        my $json->{"entries"} =\@file_check;
        my $json_text= to_json($json);
        prin $json_text;
    }
}

perl子例程是File_Check。它将检查文件是否打开。如果打开,$ file_check [0]变量的结果为TRUE。我想在下面的ajax成功方法中传递这个结果。

$.ajax({
        url: perlURL,
        data: { action: "File_Check"},
        type: 'get',
        datatype: "json",

        success: function (result) {
            // data should be returned here for manipulation. 
        },
        error: function (data) {
            alert('Error');
        }                                                                       
});

2 个答案:

答案 0 :(得分:0)

success callback的第一个参数是从服务器收到的数据:

  

<强>成功

     

输入:Function( Anything data, String textStatus, jqXHR jqXHR )

     

请求成功时要调用的函数。该函数传递三个参数:从服务器返回的数据,根据dataType参数或dataFilter回调函数格式化(如果指定);描述状态的字符串;和jqXHR(在jQuery 1.4.x,XMLHttpRequest)对象。从jQuery 1.5开始,成功设置可以接受一系列函数。每个函数将依次调用。这是一个Ajax事件。

您可以将dataType指定为JSON,并从Perl端发送相应的内容类型和响应。

答案 1 :(得分:0)

我得到了答案。如果它对任何人有帮助,我会很高兴。

sub File_Check {
    print $cgi->header('text/plain;charset=UTF-8');
    if (-e $filename) {
        my $file_check="";
        if (open(TXT,">>$filename")){
            close TXT;
            $file_check="TRUE";
        } 
        else {
            $file_check="FALSE";
        } 
    print $file_check;
    }
}

上面的一个是perl子程序。继承了我用来从perl子程序获取数据的ajax调用。

var perlURL= "$thiscode";
\$.ajax({
        url: perlURL,
        type: 'post
        data: form_data,
        datatype: "script",
        success: function (result) {
        console.log(result); // gives true or false depending on value from perl subroutine.
        },
        error: function(result) {

        }
});