我在客户端使用了 jQuery.ajax()方法。
在服务器端,PHP脚本 return false;
- 这通常会触发在客户端执行的错误功能。但目前这种情况不再发生了。执行成功功能并执行data = ""
。
如果PHP脚本返回false,不应该 jQuery.ajax()方法引发错误方法吗?
$.ajax({
url: "././mail/contact.php",
type: "POST",
data: {
name: name,
subject: subject,
email: email,
message: message
},
cache: false,
success: function(data, textStatus, jqXHR) {
// Success message
},
error: function(jqXHR, textStatus, errorThrown) {
// Fail message
},
});
更新:在服务器端PHP脚本中调用 mail();
函数。如果它失败,这个是否将http状态代码设置为500?
答案 0 :(得分:2)
$.ajax({
...
error: function(jqXHR, textStatus, errorThrown) {
// Fail message
},
});
在HTTP错误上调用 error
回调函数,而不是在代码中的逻辑错误上调用。来自the doc,
错误
键入:Function(jqXHR jqXHR,String textStatus,String errorThrown)
请求失败时要调用的函数。该函数接收三个参数:jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象,描述发生的错误类型的字符串和可选的异常对象(如果发生)。 第二个参数(null
除外)的可能值为"timeout"
,"error"
,"abort"
和"parsererror"
。发生HTTP错误时,errorThrown会收到HTTP状态的文本部分,例如"Not Found"
或"Internal Server Error"
这意味着error
回调函数将在以下情况下被触发:
所以你的问题,
在服务器端PHP脚本里面mail();函数被调用。如果它失败,这个是否将http状态代码设置为500?
没有。通常,即使您的mail()
函数失败,它也不会将HTTP状态代码设置为500,除非它处理时间太长,在这种情况下,您将在{{1}中收到超时错误回调函数。
答案 1 :(得分:0)
试试这个
$.ajax({
url: "../../mail/contact.php",
type: "POST",
data: {
name: name,
subject: subject,
email: email,
message: message
},
success: function (result) {
}
});