我发誓我会发疯的。使用来自envato市场的堆栈模板,每当我尝试做一个简单的ajax请求时,json从php返回无效。我在另一个模板中使用相同的代码,它工作正常。
$.ajax({
url: "../api/login",
dataType: 'json',
type: "post",
data:{
login:login,
pass:pass
},
success: function(data) {
console.log(data);
token = data.token;
},
error: function(data){
console.log(data);
}
});
这个电话不能更基本。我应该得到一个带有令牌的数组而不是
POST"8b025621d238f1bf715941067a33dc1f"
它的POST就是扔我的。它不会发生在我的任何其他应用程序中。返回的PHP代码在这里
function checkLogin(){
include "logindb.php";
$password = $_POST['pass'];
$login = $_POST['login'];
$db = new adminLogin();
$result = $db->logInUser($login);
$id = $result['id'];
$hash = substr( $result['hash'], 0, 60 );
error_log("hash is-->>$hash");
if(password_verify($password, $hash)){
$status = "login successful";
$token = openssl_random_pseudo_bytes(16);
$token = bin2hex($token);
$result = $db->addToken($id,$token);
error_log("login successful");
}else{
error_log("login failed");
$status = "Unauthorized";
header('HTTP/1.1 401 Unauthorized', true, 401);
}
$returnValue = json_encode(array('response'=>$status,'token'=>$token));
echo $returnValue;
}
非常感谢任何见解。谢谢。
答案 0 :(得分:0)
与您当前编辑的PHP代码一样,没有任何缺陷。
在调用POST
之前,您似乎已经回复了checkLogin()
。
尝试检查一次代码并删除echo
部分。你会很高兴。