Php $.ajax数据类型:json抛出错误
我试图通过一个来自php文件的ajax请求来检索json对象。我的ajax请求如下所示:Php $.ajax数据类型:json抛出错误,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我试图通过一个来自php文件的ajax请求来检索json对象。我的ajax请求如下所示: function validateForm() { var name = $('#usernameLogIn').val(); var password = $('#passwordLogIn').val(); $.ajax({ type: 'GET', url: '../webroot/login/validateForm/', data: {name: name, passw
function validateForm() {
var name = $('#usernameLogIn').val();
var password = $('#passwordLogIn').val();
$.ajax({
type: 'GET',
url: '../webroot/login/validateForm/',
data: {name: name, password: password},
dataType: 'json',
success: function(result) {
var data = JSON.stringify(result);
var b = $.parseJSON(data);
alert(b);
},
error: function(a,b,c) { console.log(a,b,c); }
});
}
我的php文件如下所示:
$form = $this->form;
$status = false;
$name = preg_replace("/[^A-Za-z0-9]/", " ", $_GET['name']);
$formPassword = preg_replace("/[^A-Za-z0-9]/", " ", $_GET['password']);
$now = date(DATE_RFC2822);
$user = $this->user->findName($name);
if(isset($user->name))
{
$password = $user->password;
$status = password_verify($formPassword, $password);
}
if ($status === true)
{
$this->session->set('loggedIn', $this->user->name);
}
else if ($status === false) {
$this->session->clearSession('loggedIn');
}
$sessionLog = $this->session->get('loggedIn');
$advert = array(
'session' => $sessionLog,
'name' => $name,
'password' => $formPassword,
);
echo json_encode($advert);
exit;
最后,当它将这些值传递回我的Ajax请求时,它会直接进入error函数并将以下内容打印到控制台中:
Object "parsererror" SyntaxError
message: Unexpected Token <"
对象“parsererror”语法错误
消息:意外标记我认为您的配置文件中的verbose设置为true。响应不是JSON。查看浏览器开发工具的“网络”选项卡,看看它到底是什么。你有一个501错误my Friends为什么要调用JSON.stringify
,然后立即调用JSON.parse
?您可以只编写var b=result因此,如果我理解正确,错误就在我的php文件中,因为响应不是JSON?这不就是返回JSON:echo JSON_encode($advert);?对它可能收到了一个错误,错误消息是在AJAX响应中发送的,除了JSON之外,或者不是JSON。