Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JSON返回了单词“quot;邮政「;起初_Php_Jquery_Html_Json_Ajax - Fatal编程技术网

Php JSON返回了单词“quot;邮政「;起初

Php JSON返回了单词“quot;邮政「;起初,php,jquery,html,json,ajax,Php,Jquery,Html,Json,Ajax,我发誓我快疯了。使用envato market的堆栈模板,每次我尝试执行简单的ajax请求时,php返回的json都是无效的。我在另一个模板中使用了相同的代码,效果很好 $.ajax({ url: "../api/login", dataType: 'json', type: "post", data:{ login:login, pass:pass }, success: function(data) {

我发誓我快疯了。使用envato market的堆栈模板,每次我尝试执行简单的ajax请求时,php返回的json都是无效的。我在另一个模板中使用了相同的代码,效果很好

$.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"
是那根柱子把我扔了。这在我的其他任何应用程序中都不会发生。返回的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;

}

非常感谢您的任何见解。谢谢。

与您当前编辑的PHP代码一样,没有任何缺陷

在调用
checkLogin()
之前,您似乎已经回显了
POST


尝试检查代码一次并删除该
echo
部分。你可以走了。

在你的PHP脚本中,有一些东西在回显
POST
。无法从您发布的小片段中看出发生这种情况的原因。请尝试回显
$token
您认为应该获取数组的原因是什么?您没有执行echo json_编码(数组('token'=>$token))@Barmar是对的。。发布更多信息,输出不可能来自该函数。忽略
POST
前缀问题,应该看起来像
{“response”:“login successful”,“token”:“8B0256213d38f1bf715941067a3dc1f”}
@sixstring在调用
checkLogin()
之前有东西在回显
POST
。解决了问题。巴默是对的。我一直在追逐jquery,所以错过了它。