extjs中的ajax请求总是执行成功

时间:2011-02-22 09:33:04

标签: javascript ajax perl extjs cgi

我有一个ajax请求,其中我有成功和失败的代码

success: function(my_response) {
},
failure: function(my_response) {
}

我在服务器中使用Perl CGI来处理Ajax请求,它在出现故障时打印在字符串下面

print "Content-type: text/plain\n\n";
print "{success: false, errors: {response: 'Query Failed -- Please check the syntax'}}";
exit

在萤火虫中,我可以看到上面的反应。但是,我的浏览器总是成功执行代码。我处理ajax请求的方式有什么不对吗?

1 个答案:

答案 0 :(得分:4)

您正在发送状态代码为200的JSON消息,该消息被视为成功。这个JSON消息包含一些带有错误消息的自定义结构的事实并不是extjs能够知道的。您可以从服务器发送500 HTTP状态代码,也可以在成功处理程序中使用if条件,如下所示:

success: function(my_response) {
   if (my_response.success) {
       alert('it worked!');
   } else {
       alert('oops, something went wrong: ' + my_response.errors.response);
   }
}

还要将内容类型重新设置为您实际发送的内容:

print "Content-Type: application/json\n\n";