jQuery.ajax가 실패한 MySQL UPDATE 쿼리를 오류로 해석하는 방법을 이해하는 데 어려움을 겪고있다.jQuery.ajax로 응답을 오류로 해석하기
jQuery를 : - 내가는 mysql_query 구문 잘못을하더라도 - AJAX 호출이 항상 성공으로 응답을 해석하지
$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());
는 상관없이
$.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 여기 내 코드입니다 . 나는 mysql_error()가 응답으로 되돌려 보내 졌기 때문에 Ajax 호출은이를 문자열로 읽으며, 성공으로 간주한다고 가정합니다. 물론 $ .ajax 성공 함수에서 응답 문자열을 검사하여이 문제를 처리 할 수 있지만 이는 약간 비논리적 인 것처럼 보입니다. $ .ajax dataType 옵션을 사용하여 데이터 유형을 테스트 할 수있는 경우에는 문제가되지 않습니다. 위와 같은 UPDATE 쿼리를 사용하면 항상 응답 문자열로 표시됩니다.
해결 방법이 있으므로 (성공 함수의 문자열 검사) 중요한 문제는 아닙니다. 그러나 이것을하는 더 정확한 방법이 있다면, 나는 그것을 선호합니다.
감사합니다. 훌륭한 작품입니다. 그 예외에 관해서는 ... 그러나 그것은 단지 500 오류에만 영향을 미치는 것으로 보입니다. 404와 같은 다른 오류 번호를 전달하면 연결 한 예외에 대한 걱정없이 동일한 기능을 얻을 수 있습니까? – maxedison
@maxedison 명시 적으로 500을 던지면 괜찮을 것입니다. 당신은 또한 다른 오류 코드를 던질 수도 있지만, 거기에는 아무런 문제가 없습니다. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html –
그런 경우, 나는 당신이 지적한 "예외"와 어떤 관련성이 있는지 이해하지 못한다고 생각합니다. 나는이 예외를 제외하고는 항상 500 에러를 던지는 것이 효과가 있다고 말한 것으로 생각했다. 아니? – maxedison