2017-07-14 91 views
0

我尝试使用动画和所采取的内容限制来加载来自mysqldb的内容,并且它在获取内容时显示内容内容加载结束的动画继续加载一个我得到这个错误未捕获的SyntaxError:当我尝试从mysql获取数据时出现意外的JSON输入错误结束

我的脚本:

<script> 

    $(document).ready(function(){ 

    var limit = 7; 
    var start = 0; 
    var action = 'inactive'; 
    function load_country_data(limit, start) 
    { 
     $.ajax({ 
     url:"/select_index", 
     method:"POST", 
     data:{limit:limit, start:start}, 
     cache:false, 
     success:function(data) 
     { 
     var obj2 = JSON.parse(data); 
      console.log(data); 
      console.log(obj2); 
      var i=0; 
      var j=0; 

     for(i in obj2){ 
     //for(j in obj2[i]){ 
     $('#load_data').prepend("<form><div class='panel panel-white post panel-shadow user-post'><div class='post-heading'><div class='pull-left image'><img src='static/"+obj2[i][4]+"' class='img-circle avatar' alt='user profile image'></div><div class='pull-left meta'> <div class='title h5'><a href='#'><b>"+obj2[i][1]+"</b></a> made a post.</div><h6 class='text-muted time'>1 minute ago</h6></div></div> <div class='post-description'> <p>"+obj2[i][0]+"</p><div class='stats'><a href='#' class='btn btn-default stat-item'> <i class='fa fa-thumbs-up icon'></i>2</a> <a href='#' class='btn btn-default stat-item'><i class='fa fa-share icon'></i>12</a></div></div><div class='post-footer'><div class='input-group'> <input class='form-control' placeholder='Add a comment' type='text'></div>    </div></div></form>"); 
    // } 
    } 


     // $('#load_data').append(data); 
     if(data == '') 
     { 
     $('#load_data_message').html("No Data Found"); 
     action = 'active'; 
     } 
     else 
     { 
     $('#load_data_message').html("<div class='loadingC'><div class='loadingCcerc'</div></div>"); 
     action = "inactive"; 
     } 
     } 
     }); 
    } 

    if(action == 'inactive') 
    { 
     action = 'active'; 
     load_country_data(limit, start); 
    } 
    $(window).scroll(function(){ 
     if($(window).scrollTop() + $(window).height() > $("#load_data").height() && action == 'inactive') 
     { 
     action = 'active'; 
     start = start + limit; 
     setTimeout(function(){ 
     load_country_data(limit, start); 
     }, 800); 
     } 
    }); 

    }); 
    </script> 

我看到的东西,从json.parse 我的python脚本附带的错误:

@app.route('/select_index',methods=["POST","GET"]) 
def select_index(): 
    limit=request.args['limit'] 
    print(limit) 
    start=request.args['start'] 
    print(start) 
    select="SELECT comments.post,comments.name,comments.post_id , register.id,register.profile_pic,comments.id FROM comments,register WHERE register.id=comments.post_id ORDER BY comments.id DESC LIMIT "+str(start)+","+str(limit)+" " 
    con.execute(select) 
    fetch=con.fetchall() 
    print(fetch) 
    json_fetch=str(jsonify(fetch)) 
    print(len(json_fetch)) 
    if json_fetch=="<Response 3 bytes [200 OK]>": 
     return "" 
    else:   
     return jsonify(fetch) 
+0

你确定响应是有效的JSON? –

回答

1

您正在返回从Python代码为空字符串:

if json_fetch=="<Response 3 bytes [200 OK]>": 
    return "" 

当您使用JSON.parse(""),你与Uncaught SyntaxError: Unexpected end of JSON input

0

我改回来,但现在是返回一个空数组“[]”和动画我以前不停止在屏幕上放置文本(“我以前不停止”) 脚本:

<script> 

$(document).ready(function(){ 

var limit = 7; 
var start = 0; 
var action = 'inactive'; 
function load_country_data(limit, start) 
{ 
    $.ajax({ 
    url:"/select_index", 
    method:"POST", 
    data:{limit:limit, start:start}, 
    cache:false, 
    success:function(data) 
    { 
    var obj2 = JSON.parse(data); 
     console.log(data); 
     console.log(obj2); 
     var i=0; 
     var j=0; 

    for(i in obj2){ 
    //for(j in obj2[i]){ 
    $('#load_data').prepend("<form><div class='panel panel-white post panel-shadow user-post'><div class='post-heading'><div class='pull-left image'><img src='static/"+obj2[i][4]+"' class='img-circle avatar' alt='user profile image'></div><div class='pull-left meta'> <div class='title h5'><a href='#'><b>"+obj2[i][1]+"</b></a> made a post.</div><h6 class='text-muted time'>1 minute ago</h6></div></div> <div class='post-description'> <p>"+obj2[i][0]+"</p><div class='stats'><a href='#' class='btn btn-default stat-item'> <i class='fa fa-thumbs-up icon'></i>2</a> <a href='#' class='btn btn-default stat-item'><i class='fa fa-share icon'></i>12</a></div></div><div class='post-footer'><div class='input-group'> <input class='form-control' placeholder='Add a comment' type='text'></div>    </div></div></form>"); 
// } 
} 
    //SELECT comments.post,comments.name,comments.post_id , register.id,register.profile_pic,comments.id,abonari.id_user,abonari.id_abonat FROM comments,register,abonari WHERE register.id=comments.post_id AND register.id=abonari.id_abonat ORDER BY comments.id DESC 

    // $('#load_data').append(data); 
    if(data == '') 
    { 
    $('#load_data_message').html("No Data Found"); 
    action = 'active'; 
    } 
    else 
    { 
    $('#load_data_message').html("<div class='loadingC'><div class='loadingCcerc'</div></div>"); 
    action = "inactive"; 
    } 
    } 
    }); 
} 

if(action == 'inactive') 
{ 
    action = 'active'; 
    load_country_data(limit, start); 
} 
$(window).scroll(function(){ 
    if($(window).scrollTop() + $(window).height() > $("#load_data").height() && action == 'inactive') 
    { 
    action = 'active'; 
    start = start + limit; 
    setTimeout(function(){ 
    load_country_data(limit, start); 
    }, 800); 
    } 
}); 

}); 
</script> 

和Python:

@app.route('/select_index',methods=["POST","GET"]) 
def select_index(): 
    limit=request.args['limit'] 
    print(limit) 
    start=request.args['start'] 
    print(start) 
    select="SELECT comments.post,comments.name,comments.post_id , register.id,register.profile_pic,comments.id FROM comments,register WHERE register.id=comments.post_id ORDER BY comments.id DESC LIMIT "+str(start)+","+str(limit)+" " 
    con.execute(select) 
    fetch=con.fetchall() 
    print(fetch) 
    json_fetch=str(jsonify(fetch)) 
    print(len(json_fetch))  
    return jsonify(fetch) 
+0

我现在解决了 –

相关问题