php排斥ajaxsubmit函数,关于php:ajaxsubmit错误捕获

我无法让AjaxSubmit捕获错误:

$(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');等等。

将URL更改为不存在的内容-这将使您在练习时出错

我不是一个PHP开发人员,但不会简单地在您的PHP代码中抛出一个异常(而不是捕获它)使Ajax调用失败吗?

@Francis Gagnon,这取决于最终的错误处理。一个简单的PHP语法错误或其他什么不会导致Ajax调用失败。

@Mike-正确,我的问题是没有文档来定义函数期望返回的内容被认为是错误!

见Mike de Klerk的链接,它提供了陷阱错误必须做什么的线索:

似乎成功&错误回调与传递布尔错误/成功消息无关,但仅当成功调用了URL时。我希望我不会得到错误结果,因为我使用的CMS总是返回某种内容——即使它是404或403页。

无论如何,我必须从PHP脚本返回一个JSON字符串:

$response = json_encode(array("error" =>"false","message" =>"this is the error message"));

return $response;

然后在我的成功回调中分析它:

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,您可以这样做

header("HTTP/1.0 404 Not Found");

?>

查看header函数的文档:http://nl.php.net/manual/en/function.header.php

您在这里所做的是为您的WebBrowser提供不属于典型HTML源代码的数据,通过这些数据,WebBrowser可以知道发生了什么错误。

实际上,您可以将所有需要的元数据添加到网页请求的头中,但是当WebBrowser不知道这意味着什么时,它将被忽略。请参阅以下定义或状态代码:http://www.w3.org/protocols/rfc2616/rfc2616-sec10.html

+1,对于应用程序错误,500代码可能更合适

这将在头中返回404响应,但文档本身没有数据-Ajax请求期望返回数据。(JSON)官方文档没有帮助,错误回调在任何示例中都没有。

@Sean Kimball,我知道你想要一个特定的错误消息,而不是仅仅在连接错误或其他问题上尝试错误处理程序?看编辑是我摆姿势的答案。

@所以,如果我读对了,那么成功错误与PHP脚本是否返回了什么特别的东西没有关系,只是返回了一些东西?在这种情况下-?即使在脚本中引入错误或移动页面,我也无法让它在404或500个标题上引发错误。但基本上,我应该将JSON字符串传递回成功回调并在那里进行"处理"?在哪种情况下,甚至可以触发错误回调?

@肖恩·金博尔,你读过我摆姿势的安瑟尔的网址吗?stackoverflow.com/questions/377644/…我非常确定您要找的是什么。尽管你最初的问题表明了另外一点。因此,你得到的答案与你正在寻找的答案不同。一定要问清楚你需要知道/想要什么。

我确实做到了,"我必须在PHP脚本中返回什么才能触发错误事件?"&这里的所有建议都不会触发错误回调。但您的链接确实提供了一些线索,说明了如何捕获应用程序错误…

将URL更改为不存在的内容以强制出错

function(form) {

$(form).ajaxSubmit({

url:"ajax/supportform001",

type:"GET",

dataType: 'json',

error: function() { alert('error'); },

success: function() {alert('success');} //

});

}

也不起作用-从站点返回404页[结果中包含数据],但总是触发成功回调。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值