【发布时间】:2012-09-24 07:38:51
【问题描述】:
我有一个将 Json 值返回给 javascript 调用者的网络服务。由于我无法让 .NET 返回 JSON 格式,(即使我已将其设置为 ResponseFormat:=ResponseFormat.Json)(此外,这不是跨域请求)我必须设置 javascript 以接收它改为 JSONP。
在返回值的字符长度开始增长之前,这一切正常。奇怪的错误开始出现。花了我几个小时,最后,我能找到的唯一模式是:
在一个“神奇”的 16352 个字符之后,它会在返回的值之间插入一个 ");jsonp1349260900225("。(1349260900225
以前有人遇到过这个问题吗? 16352 个字符并不是很多,我根本无法减少长度来回避这个问题。
提前致谢。
这是 firebug 返回值的 sn-p:
lign=\u0027absMiddle\u0027 /\u003e\u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 对齐=\u0027absMiddle\u0027 /\u003e \u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 align=);jsonp1349260900225(u0027absMiddle\u0027 /\u003e\u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 对齐=\u0027absMiddle\u0027 /\u003e \u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 对齐=\u0027absMiddle\u0027 /\u003e\u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 align=\
这是返回值的网络服务:
<WebMethod()> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _
Public Function L_C_H(ByVal CSI As String, ByVal CCI As String) As List(Of SquareLet.ChatManagement.Chat)
Return SquareLet.ChatManagement.Chat.LoadHistory(Guid.Parse(CSI), Guid.Parse(CCI))
End Function
【问题讨论】:
-
我没有看到你返回 jsonp ...在我看来,网络服务器返回纯 json ..(顺便说一句。json 的长度可以在 web.config
默认为2097152个字符) -
firebug 的数据显示它是 Jsonp(虽然我不知道为什么)。我知道有一个默认大小。但为什么它只有 16352 个字符?该死的:(
标签: .net web-services jsonp