모두입니다. 제목에 언급 된 오류를 반환하는 AJAX 호출이 있습니다. 나는 이것이 오류를 일으키는 선이라고 생각한다 : var obj = jQuery.parseJSON(data);
어쩌면 나는 잘못 만들어진 userData
일 것이다.예상치 못한 JSON 입력 끝 - 인식 할 수없는 SyntaxError
이 내 jQuery를 수 있습니다 :
var userData = 'email=' + email + '&password=' + password;
$.ajax({
type: 'POST',
url: './api/getInfo.php',
data: userData,
success: function(data){
var obj = jQuery.parseJSON(data);
$('#name').html(obj.firstName + ' ' + obj.lastName);
...
},
error: function(){
alert('ERROR');
}
});
그리고이 getInfo.php입니다 :
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$email = prepareInput($_POST['email']);
$password = prepareInput($_POST['password']);
$stmt = $connection->conn->prepare('SELECT firstName,lastName,... FROM tb_users WHERE email = ? AND password = ?');
$stmt->bind_param('ss',$email,$password);
$stmt->execute();
$result = $stmt->get_result();
$obj = $result->fetch_assoc();
echo json_encode($obj);
}
내가 뭔가 잘못하고있어 경우에 누군가가 말해 줄래? PHP에서 전달
UPDATE
function prepareInput($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
데이터 $obj
이 (내가 그들을 메아리하여이를 확인) 값을 포함 그래서 echo json_encode($obj);
문으로 문제가 될 수 있어야합니다 경우에도 비어 있습니다.
솔루션
나는 마침내 해답을 발견 - Link합니다. 인코딩 문제입니다. 일부 문자열이 UTF-8이 아니면 json_encode()
은 빈 문자열을 반환하므로이 문자열을 UTF-8로 변환해야합니다.
서버 응답을 확인하기 위해 성공 처리기의 첫 번째 행에'console.log (data)'를 추가하십시오. 마지막에 몇 가지 추가 코드가 있습니다/JSON 문자열 전에 오류가 발생합니다 ... – Philipp
ajax 호출에서 "json"dataType 추가 : –
문자열을 작성하는 대신 ajax'data' 개체를 사용해야합니다 너 혼자서. 이렇게 :'data : {email : email, password : password}'. – eisbehr