我有一个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请求的方式有什么不对吗?
答案 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";