我有一个将 Json 值返回给 javascript 调用者的网络服务。由于我无法让 .NET 返回 JSON 格式,(即使我已将其设置为 ResponseFormat:=ResponseFormat.Json)(此外,这不是跨域请求)我必须设置 javascript 以接收它改为 JSONP。
这工作正常,直到返回值的字符长度开始增长。奇怪的错误开始出现。花了我几个小时,最后,我能找到的唯一模式是:
在“神奇”的 16352 个字符之后,它将在返回的值之间插入一个 ");jsonp1349260900225("。(1349260900225 <-- 这会发生变化,但格式保持不变)此后每 16352 个字符都会如此。在 javascript一方面,它只是接受响应并尝试将其解析为正常,从而导致错误出现在输出的随机区域。
以前有人遇到过这个问题吗?16352 个字符并不是很多,我根本无法减少长度来回避这个问题。
提前致谢。
以下是 firebug 返回值的片段:
lign=\u0027absMiddle\u0027 /\u003e\u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 align=\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 align=\u0027absMiddle \u0027 /\u003e \u003cimg src=\u0027http://squarelet.com/images/smiley/Smile.gif\u0027 align=\u0027absMiddle\u0027 /\u003e\u003cimg src=\u0027http://squarelet.com/images /笑脸/Smile.gif\u0027 对齐=\
这是返回值的 Web 服务:
<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