jQuery ajax请求,PHP返回false但没有错误
问题描述:
我在客户端使用了jQuery.ajax()方法。jQuery ajax请求,PHP返回false但没有错误
在服务器端的PHP脚本return false;
- 这通常引发错误功能将在客户端执行。但目前这不再发生。 成功函数被执行并且data = ""
。
不应该是jQuery.ajax()方法提高错误方法,如果一个PHP脚本返回false?
$.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?
答
$.ajax({
...
error: function(jqXHR, textStatus, errorThrown) {
// Fail message
},
});
error
回调函数被调用的HTTP错误,而不是在你的代码的逻辑错误。从the doc,
错误
类型:Function(jqXHR jqXHR,字符串textStatus,字符串errorThrown)
一个函数,如果请求不被调用。该函数接收三个参数:jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象,一个描述发生的错误类型的字符串以及一个可选的异常对象(如果发生的话)。 第二个参数的可能值(除null
之外)为"timeout"
,"error"
,"abort"
和"parsererror"
。当HTTP错误发生时,errorThrown接收的HTTP状态的文本部分,如"Not Found"
或"Internal Server Error"
这意味着如果error
回调函数将得到触发:
- 你没有连接到任何验证网络
- 请求的页面没有找到
- 有任何内部服务器错误
- 你[R AJAX请求的时间太长处理
- AJAX请求被莫名其妙地中止等
所以你的问题,
内部服务器端的PHP脚本邮件();函数被调用。如果失败,这个人是否可以将http状态码设置为500?
没有。通常,即使您的mail()
函数失败,它也不会将HTTP状态代码设置为500,除非处理时间过长,否则在回调函数error
中会出现超时错误。
答
试试这个
$.ajax({
url: "../../mail/contact.php",
type: "POST",
data: {
name: name,
subject: subject,
email: email,
message: message
},
success: function (result) {
}
});
没有。假将被视为字符串。如果你想发送错误,然后发送状态码。 –
在服务器端返回false php不会在ajax调用中触发错误函数。正常情况下,jQuery错误函数只有在加载服务器端页面时有任何困难才会触发 –
错误函数在无法完成请求时触发。你应该获得你的数据成功的功能。 – krozero