我创建了一个 WCF Web 服务。我称之为使用 jQuery 1.7.1
try {
$.ajax({
type: "GET",
url: '/_vti_bin/PROJ/WCF.svc/GetDetails',
contentType: "application/json; charset=utf-8",
data: myid,
success: function (msg) {
wcfServiceGetSucceeded(msg);
},
error: wcfServiceGetFailed
});
} catch (e) {
alert('error invoking service.get()' + e);
}
当结果很小时,这适用于所有浏览器。当结果大小较大时,IE8 崩溃。Chrome 和 IE9 工作正常。返回的 json 正文是 51,856(不确定 fiddler 中的单位是什么)。IE完全崩溃。它挂起,没有任何显示。IE进程需要被杀死。
我假设它归结为以下原因之一:
- IE8可以处理的数据量是有限制的
$.ajax()
IE8有问题- IE8 中存在超时问题
有谁知道我可以做些什么来让它工作?我唯一能想到的就是拆分请求并进行多次调用。
返回内容的一个小例子如下所示:
"<ul>
<li><a href='#tabs-1'>Member<\/a><\/li><li><a href='#tabs-2'>Scheme<\/a><\/li>
<li><a href='#tabs-3'>Scheme Categories<\/a><\/li>
<li><a href='#tabs-4'>Correspondence<\/a><\/li>
<\/ul>"
WCF 服务返回 html,然后使用.html()
.
唯一可能是返回的 html 中存在导致问题的错误。
更新
关于最后一点:
唯一可能是返回的 html 中存在导致问题的错误。
使用 firefox,我复制了该区域的生成源。通过 w3 验证器运行它,除了我添加到 tr 标记的自定义属性之外,它可以很好地验证。
更新
我曾尝试将其更改为 POST,但没有任何乐趣。WCF 服务的身份验证似乎有点不稳定。
更新
我也可以在 IE7 上创建问题。