ajaxSubmit error capturing
我无法让AjaxSubmit捕获错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | $(document).ready(function(){ $("#supportForm").validate({ rules: { //validation }, messages: { //messages }, submitHandler: function(form) { $(form).ajaxSubmit({ url:"ajax/supportform", type:"GET", dataType: 'json', error: function() { alert('error'); }, success: function() {alert('success'); }, }); } }); }) |
我必须在php脚本中返回什么才能触发错误事件?
我尝试返回一个错误大于0的数组,exit(json_encode('error'=>'0');等等。
见Mike de Klerk的链接,它提供了陷阱错误必须做什么的线索:
似乎成功&错误回调与传递布尔错误/成功消息无关,但仅当成功调用了URL时。我希望我不会得到错误结果,因为我使用的CMS总是返回某种内容——即使它是404或403页。
无论如何,我必须从PHP脚本返回一个JSON字符串:
1 2 3 4 5 6 | <?php $response = json_encode(array("error" =>"false","message" =>"this is the error message")); return $response; |
然后在我的成功回调中分析它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | submitHandler: function(form) { $(form).ajaxSubmit({ url:"ajax/supportform", type:"POST", dataType: 'json', error: function(data ) { alert(data); }, success: function(response) { var obj = jQuery.parseJSON(response); if(obj.error =="true"){ alert('error is true'); }else{ alert('error is false') } }, }); } |
编辑:要显示来自PHP的某些特定错误描述,您应该阅读以下问题:jquery ajax错误处理,显示自定义异常消息
让您的服务器产生一些错误,使用PHP,您可以这样做
1 2 3 |
查看header函数的文档:http://nl.php.net/manual/en/function.header.php
您在这里所做的是为您的WebBrowser提供不属于典型HTML源代码的数据,通过这些数据,WebBrowser可以知道发生了什么错误。
实际上,您可以将所有需要的元数据添加到网页请求的头中,但是当WebBrowser不知道这意味着什么时,它将被忽略。请参阅以下定义或状态代码:http://www.w3.org/protocols/rfc2616/rfc2616-sec10.html
将URL更改为不存在的内容以强制出错
1 2 3 4 5 6 7 8 9 | function(form) { $(form).ajaxSubmit({ url:"ajax/supportform001", type:"GET", dataType: 'json', error: function() { alert('error'); }, success: function() {alert('success');} // <-was an extra comma }); } |