Jquery .getjson结果不显示

Jquery .getjson结果不显示,jquery,json,Jquery,Json,我正在尝试编写一个非常简单的autosuggest类型函数,这样,每当用户在搜索输入中输入一个值时,匹配结果的列表就会出现在下面(在ul中,id为playlist) 但是,页面上没有显示任何内容 我是不是错过了一些重要的东西?我不熟悉处理JSON请求。看起来数据本身就是一个数组: ([{"title":"Episode ^-- array 我不确定括号是从哪里来的,它们可能只是复制粘贴的东西,所以我将忽略它们 试试这个: $.each(data, function(item){ /

我正在尝试编写一个非常简单的autosuggest类型函数,这样,每当用户在搜索输入中输入一个值时,匹配结果的列表就会出现在下面(在ul中,id为playlist)

但是,页面上没有显示任何内容


我是不是错过了一些重要的东西?我不熟悉处理JSON请求。

看起来数据本身就是一个数组:

([{"title":"Episode 
 ^-- array
我不确定括号是从哪里来的,它们可能只是复制粘贴的东西,所以我将忽略它们

试试这个:

$.each(data, function(item){
    // ...

数据。项
似乎未定义。如果您查看JSON,它只是一个数组,而不是包含
项的对象。您的url是错误的,因此服务器响应缺少函数名

响应应该如下所示:

jQuery12345(yourJson)
$.each(data, function(index,item){
            $("<li>").text(item.title).appendTo("#playlist ul");
        });
{"title":"Episode 4: Title"},{"title":"Episode 3: Title"},{"title":"Episode 2: Title"},{"title":"Episode 1: Title"}
但是通过错误的url,发送到服务器的jsoncallback没有值(该值由jQuery生成,服务器应在响应中将其用作函数名)


使用以下任一选项:

url = "includes/live_search.php?jsoncallback=?&term=" + term;
(您缺少jsoncallback的问号)

(您不需要jsoncallback参数,它不是X域请求。让服务器用纯JSON响应)



您的$.each()应如下所示:

jQuery12345(yourJson)
$.each(data, function(index,item){
            $("<li>").text(item.title).appendTo("#playlist ul");
        });
{"title":"Episode 4: Title"},{"title":"Episode 3: Title"},{"title":"Episode 2: Title"},{"title":"Episode 1: Title"}
$。每个(数据、函数(索引、项){
$(“
  • ”).text(item.title).appendTo(“#playlist ul”); });

  • (传递给回调函数的第一个参数是索引,而不是当前项……第二个参数是什么)

    这里有几个问题。首先,您的请求被格式化为,但live_search.php没有用函数名填充JSON输出。这可能是因为您没有将请求中的“jsoncallback”参数设置为“”。但是,由于您正在进行跨域请求(同一来源),因此不需要使用JSONP。可以让list_search.php返回常规JSON,而无需外部函数填充。您可以打开live_search.php,删除输出$\u GET['jsoncallback']变量以及周围括号的代码。结果输出应如下所示:

    jQuery12345(yourJson)
    
    $.each(data, function(index,item){
                $("<li>").text(item.title).appendTo("#playlist ul");
            });
    
    {"title":"Episode 4: Title"},{"title":"Episode 3: Title"},{"title":"Episode 2: Title"},{"title":"Episode 1: Title"}
    
    另外,您的$。每个迭代器都缺少回调函数中的第二个参数。见文件。下面我还提供了一个例子

    $("#ep_search").keydown(function() {
        var term = $("#ep_search").val();
        url = "includes/live_search.php?term=" + term;
    
        $.getJSON(url, function(data) { 
            $.each(data, function(idx, ele){
                $("<li />").text(ele.title).appendTo("#playlist ul");
            });
        });
    });
    
    $(“#ep_搜索”).keydown(函数(){
    var term=$(“#ep_搜索”).val();
    url=“includes/live_search.php?term=“+term;
    $.getJSON(url,函数(数据){
    $.each(数据、函数(idx、ele){
    $(“
  • ”).text(ele.title).appendTo(“#playlist ul”); }); }); });
  • 看起来与他的代码相同。你的意思是删除
    。物品
    ?@kingjiv:是的,我删除了,现在已经删除了,你很快就完成了!你在我修正打字错误时发表了评论。JSON不是数组,它不是JSONWow!谢谢大家迄今为止的回答。今晚回家后我得试试这些,