Ошибка разбора от вызова ajax

Я написал некоторый AJAX-код, используя библиотеку с открытым исходным кодом для разбивки на страницы JQuery. при первой загрузке страницы она правильно запрашивает и отображает первые 25 записей из моей базы данных. Но все последующие запросы терпят неудачу с ошибкой разбора. Я не вижу ничего другого между форматированием данных на первой странице и другими страницами.

Я пытался использовать JSON Lint, но ни один из моих проходов json, даже запрос на страницу 1. Мои данные json выглядит так:

"[{\"createddatetime\":\"2013-09-10 17:56:54\",\"description\":\"and the final update\",\"number\":\"72212\",\"updatedname\":\"28112\",\"createdname\":\"conversion script\",\"user\":\"28507\",\"position\":\"1\",\"device_id\":\"2\",\"user_id\":\"2\",\"password\":\"Wh16dteaR\",\"updateddatetime\":\"2013-10-07 15:14:28\"},{\"createddatetime\":\"2013-09-10 17:56:54\",\"description\":\"Bauer\",\"number\":\"72787\",\"createdname\":\"conversion script\",\"user\":\"28509\",\"position\":\"2\",\"device_id\":\"4\",\"user_id\":\"4\",\"password\":\"EHVOzIx1\"},{\"createddatetime\":\"2013-09-10 17:56:54\",\"description\":\" Woosly\",\"number\":\"72822\",\"createdname\":\"conversion script\",\"user\":\"28510\",\"position\":\"3\",\"device_id\":\"5\",\"user_id\":\"5\",\"password\":\"IP8rsdOE\"}]"

А затем я использую метод parseJSON для преобразования указанной выше строки в объект. Вот основная процедура, которая делает вызов ajax и анализирует:

   $.ajax({
      url: mypath + '?startpos=' + page_index * items_per_page + '&numberofrecordstograb=' + items_per_page + '&viewtype=json',
      dataType: 'json',
      success: function(data){                           
             data = $.parseJSON(data); //converting to a javascript object vs. just string...       
             if (data !=null) {   

                for(var i=0;i<data.length;i++){
                        var deviceobj = data[i];                        
                        newcontent = newcontent + "<TR>";
                        newcontent=newcontent + '<TD>';    

                        //add EDIT hyperlink
                        if ($("#editdevicesettings").val() == "true") {              
                            var temp  = $("#editlinkpath").val();
                            newcontent=newcontent +  temp.replace("xxx",deviceobj["device_id"]) + '&nbsp;&nbsp;';
                        } 

                        //add DELETE hyperlink
                        if ($("#deletedevice").val() == "true") {              
                            var temp  = $("#deletelinkpath").val();
                            newcontent=newcontent +  temp.replace("xxx",deviceobj["device_id"]);
                        }                                 
                        newcontent=newcontent + '</TD>';

                        newcontent=newcontent + '<TD>' + deviceobj["number"] +'</TD>';
                        newcontent=newcontent + '<<TD>' + deviceobj["user"] + '</TD>';
                        newcontent=newcontent + '<<TD>' + deviceobj["password"] + '</TD>';
                        if (deviceobj["name"]) {
                              newcontent=newcontent + '<TD>' + deviceobj["name"] + '</TD>';
                        } 
                        else  {
                             newcontent=newcontent + '<TD>&nbsp;</TD>';
                        }
                        newcontent=newcontent + '<TD>' + deviceobj["description"]  + '</TD>';
                        newcontent = newcontent + "</TR>";         
                }// end for 
                // Replace old content with new content
                $('#Searchresult').html(newcontent);                    
            }//end if

      },
      error: function(request, textStatus, errorThrown) {
        console.log(textStatus);

      },
      complete: function(request, textStatus) { //for additional info
        //alert(request.responseText);
        console.log(textStatus);
      }
    });

    // Prevent click eventpropagation
    return false;
}//end pageselectCallback()

Я не уверен, как решить эту проблему. Мы ценим любые предложения

1 ответ

Решение

Я решил уменьшить количество записей, возвращаемых до одной на страницу... чтобы сузить запись, которая вас обидела. теперь, когда я знаю, какая это запись, я смогу решить проблему.

Другие вопросы по тегам