JSON Ajax get方法错误


Error with JSON Ajax get method

我使用jquery ajax get方法从服务器获取信息,但是我有问题解析信息,以便我可以使用它。我的网站有一个产品库,它将根据类别过滤它的项目。

下面是jQuery ajax函数:
$('.category').click(function() {
        var category;
        if ($(this).hasClass('Shirts')) {
            category = 'shirts';
        }
        if ($(this).hasClass('Hats')) {
            category = 'hats';
        }
        if ($(this).hasClass('Acc')) {
            category = 'acc';
        }
        $.ajax({
            type: 'GET',
            url: 'galleryfetch.php',
            data: { 'category' : category },
            dataType: 'json',
            success:  function(data) {
                arr = $.parseJSON(data);
                alert(arr);
            }
        });
    });

这是信息发布到的php脚本:

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {
        $category = $_GET['category'];
        $conn = mysqli_connect('localhost', '*****', '*****', 'clothing');  
        $rows = mysqli_query($conn, "SELECT * FROM products WHERE category = '".$category."'");

        while ($row = mysqli_fetch_array($rows)) {
            $arr[] = $row; 
        } 
        echo json_encode(array('data' => $arr));
    }

我在success函数中使用警报来查看信息是否成功传递,但目前没有警报,我得到一个:Unexpected token o错误。

我不确定我是否正确解析信息,或者如果我没有正确使用JSON

tl;dr: $.parseJSON(data);应移除


您的服务器正在返回JSON(但声称它正在发送HTML,您应该有header("Content-Type: application/json"))。

您已经告诉jQuery忽略它是HTML的声明并将其解析为JSON。(如果您解决了上述问题,这将是多余的)

dataType: 'json',

解析后的数据传递给success函数。

然后将该数据传递给JSON.parse,以便将其转换为字符串(看起来像[ [Object object], ...并且不是有效的JSON),然后出现错误。

删除:

arr = $.parseJSON(data);

data一起使用