在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 中的error
和fail
为空。
答案 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
,您应该为错误设置适当的错误代码。