首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让jQuery.ajax将响应解释为错误

让jQuery.ajax将响应解释为错误
EN

Stack Overflow用户
提问于 2011-02-26 23:57:44
回答 1查看 2K关注 0票数 2

我正在努力理解如何让jQuery.ajax将失败的MySQL UPDATE查询解释为错误。下面是我的代码:

jQuery:

代码语言:javascript
复制
$.ajax({
    type:'POST',
    url:'/ajax/registration.php',
    data:{formData: formData},
    success:function(data){eformDef.forms.registration.success(data);},
    error:function(data){eformDef.forms.registration.success(data);}
});

PHP

代码语言:javascript
复制
$data = $_POST['formData'];
$firstName = mysql_real_escape_string($data['first name']);
$lastName = mysql_real_escape_string($data['last name']);
$email = mysql_real_escape_string($data['email address']);
$password = mysql_real_escape_string($data['password']);


mysql_query("INSERT INTO users (first_name, last_name, email, password) VALUES ('$firstName', '$lastName', '$email', '$password')") or die(mysql_error());

无论如何--即使我使mysql_query语法无效-- ajax调用总是将响应解释为成功。我假设这是因为mysql_error()被作为响应返回,ajax调用将其读取为字符串,并显然认为这是成功的。当然,我可以通过检查$.ajax成功函数中的响应字符串来处理此问题,但这似乎有点不合逻辑。在可以使用$.ajax dataType选项测试数据类型的情况下,这不是问题。但是使用像上面这样的UPDATE查询,我总是得到一个字符串作为响应。

因为有一个解决方法(检查成功函数中的字符串),所以这不是一个关键问题。但如果有更正确的方法,我更希望这样做。

EN

回答 1

Stack Overflow用户

发布于 2011-02-27 00:02:25

只有当HTTP状态码指示存在错误时,Ajax调用才会将响应解释为错误。die没有将HTTP状态码设置为500 (至少文档中没有这样说明)。如果你在你的代码中抛出一个异常,而不是仅仅使用die,那么PHP应该返回一个500HTTP状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5127924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档