ajax 호출이 올바른 값을 보내고 데이터베이스에 기록되고 있지만 응답을받지 못합니다.
오류를 찾기 위해 코드를 최소한으로 줄 였지만 여전히 응답을받을 수 없습니다.
$(document).ready(function () {
$('#change_username').click(function(){
$.ajax({
dataType: "json",
type: "POST",
url: "ajax/change_password_ajax.php",
data: $('#change_password_form').serialize(),
success:function(response){
smeg = (response.message),
alert(smeg)
}
});
});
});
change_password_ajax.php
$new_password = $_POST['new_password1'];
$new_password = md5($new_password);
$sql = "UPDATE user SET password = '$new_password' WHERE userID = '$id'";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
if($result){
$message = 'yes';
}
$output_array = array(
'message' => $message,
'bob' => 'yellow'
);
echo json_encode($output_array);
Firebug를 사용하는 경우 change_password_ajax.php에 대한 게시물이 빨간색으로 강조 표시되고 응답이나 html 탭이 없지만 그 이유는 표시하지 않습니다.
수정 됨 : 질문에서 첫 번째 문장을 보지 못했습니다.
AJAX 호출에 "성공"콜백을 포함했지만 "오류"콜백은 포함하지 않았습니다. 하나를 추가하면 오류 처리에 필요한 오류 개체에 액세스 할 수 있지만 실패에 대한 자세한 정보를 제공 할 수도 있습니다.
그러나 귀하의 경우에는 데이터가 데이터베이스에 저장되고 있으므로 요청이 작동 중이어야합니다. 오류는 데이터베이스 요청이 이루어진 후 (json_encode?) 또는 응답 처리의 프런트 엔드에 있습니다.
아파치 로그에서 PHP 오류를 확인하여 무슨 일이 일어나고 있는지 정확히 파악할 수 있는지 확인하십시오.
편집 2 :
귀하의 의견을 보면이 다른 스택 오버플로 질문이 몇 가지 답변을 얻을 수 있습니다.
포착되지 않은 예외 : Ajax 프로세스의 메모리 부족
버튼이 제출 버튼 인 경우 버튼에 대해 preventDefault ()를 방지 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다