SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符(Php Codimitter An


SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data (Php Codigniter And Jquery)

我正试图在我的Codeigniter项目中实现jQuery Autocomplete,但我在Firefox中遇到了以下错误。

SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符

JavaScript

jQuery("#search").autocomplete({
    source: function(req, response) {
        $.ajax({
            url: "<?php echo site_url('C_systemUser/search_value'); ?>",
            dataType: "text",
            success: function(data) {
                var re = $.ui.autocomplete.escapeRegex(req.term);
                var matcher = new RegExp("^" + re, "i");
                response($.grep(data, function(item) {
                    return matcher.test(item.label);
                }));
            }
        });
    },
    minLength: 2,
    select: function(event, ui) {
        event.preventDefault();
        $('#search').val(ui.item.label);
        $('#id').val(ui.item.value);
    }
});

模式

function systemUserSearch($q) {
    $this - > db - > select('systemUserID,systemUserName');
    $this - > db - > like('systemUserName', $q);
    $query = $this - > db - > get('systemuser');
    if ($query - > num_rows() > 0) {
        foreach($query - > result_array() as $row) {
            $result_row['label'] = htmlentities(stripslashes($row['systemUserName']));
            $result_row['value'] = htmlentities(stripslashes($row['systemUserID']));
            $result[] = $result_row;
        }
        echo json_encode($result);
    }
}

控制

public function search_value()
{
    $q=$this->input->get('query');
    $this->load->model('m_autocomplete');
    $this->m_autocomplete->systemUserSearch($q);
}

你确定这一点吗:

    url: "<?php echo site_url('C_systemUser/search_value'); ?>",

你能很好地在php文件中渲染js吗?

您应该设置内容类型标题

header("Content-Type: application/json;charset=utf-8");

此外,在JS dataType: "json" 中设置

Javascript

jQuery("#search").autocomplete({
    source: function(req, response) {
        $.ajax({
            url: "<?php echo site_url('C_systemUser/search_value'); ?>",
            dataType: "json",
            success: function(data) {
                var re = $.ui.autocomplete.escapeRegex(req.term);
                var matcher = new RegExp("^" + re, "i");
                response($.grep(data, function(item) {
                    return matcher.test(item.label);
                }));
            }
        });
    },
    minLength: 2,
    select: function(event, ui) {
        event.preventDefault();
        $('#search').val(ui.item.label);
        $('#id').val(ui.item.value);
    }
});

模态

function systemUserSearch($q) {
    $this - > db - > select('systemUserID,systemUserName');
    $this - > db - > like('systemUserName', $q);
    $query = $this - > db - > get('systemuser');
    if ($query - > num_rows() > 0) {
        foreach($query - > result_array() as $row) {
            $result_row['label'] = htmlentities(stripslashes($row['systemUserName']));
            $result_row['value'] = htmlentities(stripslashes($row['systemUserID']));
            $result[] = $result_row;
        }
        ob_clean();
        header('Content-Type: application/json');
        echo json_encode($result);
        ob_end_flush();         
    }
}

感谢所有人的帮助修复了错误,因为jquery Ui Reference错误更改为新版本,该错误修复了