Подтвердить что ты не робот

Jquery разбивает огромный массив на множество новых обратных вызовов при разборе

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

`[....,154,156,);jQuery1910039778258679286416_1363006432850(181,104,...]

каждые ~ 7300 символов

Теперь, когда я использую метод ajax для его анализа, как он работает нормально, он дает мне ошибку, потому что обратные вызовы аннулируют ответ SyntaxError: missing] после списка элементов

..., 184,1,26,65,140,86,211,16,194,210,174,1); jQuery17203250109862964784_13639643449...

поэтому он больше недействителен

Я использую это для его анализа

$.ajax({
    url : url,
    cache : false,
    dataType : "jsonp",
    crossDomain : true,
    success : function(root) {
        console.log(root)

    }
})

Может ли это быть проблемой с сервером asp, предоставляющим мне объект, или что-то не так с синтаксическим разбором?

Спасибо в Advance

EDIT1:

   [WebMethod(Description = " ", EnableSession = true)]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]

public Borrower getSessionedBorrowerHeader(ref sysmessage aMessage)
{
    if (!(userValidated(ref aMessage)))
        return null;
    BorrowerControl borrowerControl = new BorrowerControl(LOCALconnectionStringDb,
                                                          WEBconnectionStringDb,
                                                          STATSconnectionStringDb,
                                                          LIBconnectionStringDb,
                                                          CATconnectionStringDb,
                                                          LIBconnectionStringDb,
                                                          Session);
    Borrower returnObj = borrowerControl.getSessionedBorrowerHeader(ref aMessage);
    borrowerControl.Dispose();
    return returnObj;
}

Если вам нужно больше кода, скажите мне, что я не в ASP: (

EDIT2:

http://pastebin.com/e3X2VKxY

Что делать:( Вот ответ JSON

4b9b3361

Ответ 1

Это звучит как фактор, ограничивающий ASP. Это не специфично для jQuery, а для любого ответа JSON с сервера ASP. Я тоже видел это на серверах ColdFusion. Найдите этот параметр и посмотрите, соответствует ли предел вашему пределу, который вы нанесли. Посмотрите, можете ли вы увеличить его до того, что вам нужно.

<system.web.extensions>  
    <scripting>  
        <webServices>  
            <jsonSerialization maxJsonLength="x"></jsonSerialization>  
        </webServices>  
    </scripting>  
</system.web.extensions>

Если у вас нет доступа к настройкам сервера, вы также можете установить значение в своем коде. Вот ссылка MSDN для этого:

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.maxjsonlength.aspx

Здесь также говорится:

Максимальная длина строк JSON. Значение по умолчанию - 2097152 символов, что эквивалентно 4 МБ строковых данных Unicode.

Это путь по вашей длине ~ 7300 символов. Но, возможно, кто-то изменил эту настройку.

Мне также любопытно, что вы видите "несколько" возвратов метода обратного вызова. Обычно, я думаю, этот предел просто усечет результат первого результата обратного вызова. Может, у вас тоже есть что-то еще?

Ответ 2

В соответствии с документацией jQuery вы можете установить имя обратного вызова jsonp, чтобы сохранить байты в вашем случае: jsonpCallback

function J() { ... }
$.ajax({
    url : url,
    cache : false,
    dataType : "jsonp",
    jsonpCallback : "J",
    crossDomain : true,
    success : function(root) {
        console.log(root)
    }
})