任何人都可以告诉我如何将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');
}
});
答案 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) {
}
});