如何将数据返回到Perl中的ajaxError

时间:2017-03-07 09:32:57

标签: javascript jquery ajax perl

在JavaScript中,我以这种方式捕获错误:

$(document).ajaxError(function(event, jqxhr, settings, thrownError) {
    handleError(MSG_SAVE_ERROR);
});

如果我遇到服务器错误,如何从Perl代码返回我的消息? 我使用$SIG{__DIE__}来拦截异常。

我试过了:

$SIG{__DIE__} = sub {
    my ($error) = @_;
    my $q=new CGI;

    print $q->header(-type=>"text/plain", -Access_Control_Allow_Origin=>"*")."My error: ".$error;
}

但它不起作用, jqxhr 中的errorfail为空。

1 个答案:

答案 0 :(得分:1)

错误状态由HTTP status code确定。

默认情况下,CGI会输出200 OK响应。错误是4xx和5xx范围内的代码。

CGI POD has an example of sending an error code

print $cgi->header(
    -type       => 'image/gif',
    -nph        => 1,
    -status     => '402 Payment required',
    -expires    => '+3d',
    -cookie     => $cookie,
    -charset    => 'utf-8',
    -attachment => 'foo.gif',
    -Cost       => '$2.00'
);

唯一重要的哈希键是-status,您应该为错误设置适当的错误代码。