10

我偶然发现了一个小问题。我得到一个 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服务器给我对象的问题还是解析有问题?

提前致谢

编辑1:

   [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 :(

编辑2:

http://pastebin.com/e3X2VKxY

怎么办:(这是JSON答案

4

2 回答 2

1

这听起来像是一个 ASP 限制因素。这不是 jQuery 特定的,而是针对来自 ASP 服务器的任何 JSON 响应。我也在 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 MB 的 Unicode 字符串数据。

这超出了您大约 7300 个字符的长度。但也许有人调整了这个设置。

我也很好奇您看到“多次”返回到回调方法。通常,我认为,这个限制只会截断第一个回调结果的结果。也许您还有其他事情要做?

于 2013-04-02T01:16:41.333 回答
0

根据 jQuery 文档,您可以设置 jsonp 回调的名称,以在您的情况下保存字节:jsonpCallback

function J() { ... }
$.ajax({
    url : url,
    cache : false,
    dataType : "jsonp",
    jsonpCallback : "J",
    crossDomain : true,
    success : function(root) {
        console.log(root)
    }
})
于 2013-03-19T17:51:51.810 回答