簡體   English   中英

JSON 中位於位置 0 的意外 < 標記

[英]Unexpected < token in JSON at position 0

我不斷收到這個 JSON 錯誤,我認為它與 html 標簽或與它沖突的任何其他標簽有關。

這是我的 PHP 代碼:

 <?php
    require_once("connection.php");

    class AddAdminUPController extends Connection{

        public function addAdminUP(){
            include "function.php";
            $username = cleanData($_POST['username']);
            $password = cleanData($_POST['password']);
            if (!empty($username)){
                if(!empty($password)){
                    if(strlen($password) > 8){
                        $select_query = "select * from sample_user where user_name = ?";
                        $stmt = $this->db->prepare($select_query);
                        $stmt->bindParam(1,$username);
                        if($stmt->execute()){
                            if($stmt->rowCount() <= 0){
                                $password = password_hash($password,PASSWORD_BCRYPT,array('cost' => 12));
                                $create_query = "insert into sample_user(user_name,password)values(?,?)";
                                $stmt = $this->db->prepare($create_query);
                                $stmt->bindParam(1,$username);
                                $stmt->bindParam(2,$password);
                                if($stmt->execute()){
                                    echo "<script>".
                                         "Materialize.toast('Created SuccessFully!', 5000, 'green')"
                                        ."</script>";
                                    echo "<script>".
                                         "$('#add_admin_up_form').hide();".
                                         "$('#add_admin_up').hide();";
                                    ?>

                                    $(".enrollment_title").html("<i class='material-icons'>fingerprint</i> Enroll Fingerprint");

                                    <?php
                                    echo "</script>";

                                    include 'flexcode_sdk/include/global.php';
                                    include 'flexcode_sdk/include/function.php';
                                    if(isset($_GET['action']) && $_GET['action'] == 'add'){
                                        $lastID = $this->db->lastInsertId();
                                    ?>

                                    <script type="text/javascript">

                                        $('title').html('User');
                                        function user_register(user_id, user_name) {

                                            $('body').ajaxMask();

                                            regStats = 0;
                                            regCt = -1;
                                            try
                                            {
                                                timer_register.stop();
                                            }
                                            catch(err)
                                            {
                                                console.log('Registration timer has been init');
                                            }

                                            var limit = 4;
                                            var ct = 1;
                                            var timeout = 5000;

                                            timer_register = $.timer(timeout, function() {
                                                console.log("'"+user_name+"' registration checking...");
                                                user_checkregister(user_id,$("#user_finger_"+user_id).html());
                                                if (ct>=limit || regStats==1)
                                                {
                                                    timer_register.stop();
                                                    console.log("'"+user_name+"' registration checking end");
                                                    if (ct>=limit && regStats==0)
                                                    {
                                                        alert("'"+user_name+"' registration fail!");
                                                        $('body').ajaxMask({ stop: true });
                                                    }
                                                    if (regStats==1)
                                                    {
                                                        $("#user_finger_"+user_id).html(regCt);
                                                        alert("'"+user_name+"' registration success!");
                                                        $('body').ajaxMask({ stop: true });
                                                        load('view_admin.php?action=add');
                                                    }
                                                }
                                                ct++;
                                            });
                                        }

                                        function user_checkregister(user_id, current) {
                                            $.ajax({
                                                url         :   "view_admin.php?action=checkreg&user_id="+user_id+"&current="+current,
                                                type        :   "GET",
                                                success     :   function(data)
                                                                {
                                                                    try
                                                                    {
                                                                        var res = jQuery.parseJSON(data);
                                                                        if (res.result)
                                                                        {
                                                                            regStats = 1;
                                                                            $.each(res, function(key, value){
                                                                                if (key=='current')
                                                                                {
                                                                                    regCt = value;
                                                                                }
                                                                            });
                                                                        }
                                                                    }
                                                                    catch(err)
                                                                    {
                                                                        alert(err.message);
                                                                    }
                                                                }
                                            });
                                        }

                                    </script>

                                    <?php

                                        $last_id_query = "select * from sample_user where user_id = ?";
                                        $stmt = $this->db->prepare($last_id_query);
                                        $stmt->bindParam(1,$lastID);
                                        if ($stmt->execute()){
                                            while($row = $stmt->fetch(PDO::FETCH_OBJ)){

                                                $url_register =
                                                base64_encode($base_path."register.php?user_id=".$row->user_id);
                                                echo "<br><a href='finspot:FingerspotReg;$url_register' onclick=\"user_register('".$row->user_id."','".$row->user_name."')\" class='fw_button general_button btn waves-effect waves-light'>Register Fingerprint</a>";
                                            }
                                        }
                                    }
                                    elseif (isset ($_GET['action']) && $_GET['action'] == 'checkreg') {

                                            $sql1       = "SELECT count(finger_id) as ct FROM sample_finger WHERE user_id=".$_GET['user_id'];
                                            $result1    = mysql_query($sql1);
                                            $data1      = mysql_fetch_array($result1);
                                            if (intval($data1['ct']) > intval($_GET['current'])) {
                                                $res['result'] = true;
                                                $res['current'] = intval($data1['ct']);
                                            }
                                            else
                                            {
                                                $res['result'] = false;
                                            }
                                            echo json_encode($res);
                                    }
                                    else { echo "Parameter invalid..";}
                                }
                                else{
                                    echo "<script>".
                                         "Materialize.toast('Query Failed!', 5000, 'red')"
                                        ."</script>";
                                }
                            }
                            else{
                                echo "<script>".
                                     "Materialize.toast('Username already exists!', 5000, 'red')"
                                    ."</script>";
                            }
                        }
                        else{
                            echo "<script>".
                                 "Materialize.toast('Query Failed!', 5000, 'red')"
                                ."</script>";
                        }
                    }
                    else{
                        echo "<script>".
                             "Materialize.toast('Password is too short!', 5000, 'red')"
                            ."</script>";
                    }
                }
                else{
                    echo "<script>".
                         "Materialize.toast('Password is empty!', 5000, 'red')"
                        ."</script>";
                }
            }
            else{
                echo "<script>".
                     "Materialize.toast('Username is empty!', 5000, 'red')"
                    ."</script>";
            }

        }
    }
$add_admin_up_controller = new AddAdminUPController;
echo $add_admin_up_controller->addAdminUP();

?>

我需要幫助來解決這種錯誤。 一直顯示:

SyntaxError:在 Object.success 的 Function.jQuery.parseJSON (jquery.js:8520) 的 JSON.parse () 的位置 0 處的 JSON 中的意外標記 < 在在 XMLHttpRequest.callback (jquery.js:9718) 完成 (jquery.js:9314) 在 Object.fireWith [as resolveWith] (jquery.js:3260) 觸發 (jquery.js:3148)

您正在返回純文本而不是 JSON。 在您的 ajax 調用中放入響應 dataType: 'json' 和 PHP 的一部分:

header("Content-Type: application/json");
echo json_encode($res);
exit;

由於您的響應不是 json 格式而導致的此錯誤,並且您的 ajax 請求需要 json 響應。 您可以通過在 ajax 請求中使用 dataType : 'text/html' 來更改響應標頭。

在這里行動。

function user_checkregister(user_id, current) {
$.ajax({
    url         :   "view_admin.php?action=checkreg&user_id="+user_id+"&current="+current,
    type        :   "GET",
    dataType: 'text/html',
    success     :   function(data)
                    {
                        try
                        {
                            var res = jQuery.parseJSON(data);
                            if (res.result)
                            {
                                regStats = 1;
                                $.each(res, function(key, value){
                                    if (key=='current')
                                    {
                                        regCt = value;
                                    }
                                });
                            }
                        }
                        catch(err)
                        {
                            alert(err.message);
                        }
                    }
});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM