我正在使用来自http://www.w3schools.com/jquery/jquery_ajax_get_post.asp
的jQuery post方法$("button").click(function(){
$.post("demo_test_post.pl",
{
name: "Donald Duck",
city: "Duckburg"
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
服务器端脚本位于perl中。 perl中的print语句位于回调函数的data参数中。我总是获得成功"
基本上我需要将错误条件传播到我无法模拟的前端。我试过死,退出并返回不同的值,但在所有情况下,我得到状态为"成功"。
如何获取此jQuery函数的非成功状态?
是否有更简洁的方法从后端perl服务器接收错误条件?
下面是服务器端的perl代码:
#!/usr/bin/env perl
#|++
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $q = new CGI;
main();
sub main()
{
if($q->param())
{
my $name = $q->param('name');
my $city = $q->param('city');
print('You entered'.$name.' and '.$city);
}
}
通过上面的代码,我已经尝试了返回,die&退出但我总是以状态获得成功。
答案 0 :(得分:0)
jQuery的post函数返回的状态是HTTP-statuscode。每当您在脚本中打印某些内容时,它将通过您的网络服务器以200 OK状态发送到浏览器。
现在,您可以选择在响应数据中指明错误。 使用json编码的服务器响应的示例:
{
"error": true
}
另一个选择是将HTTP-Statuscode设置为其他内容(对于您的情况,代码400,这意味着'错误请求'可能是合适的。)
答案 1 :(得分:0)
如果您想测试失败的Ajax调用,您的Pearl代码应返回400,...,403,404或500 HTTP状态代码。