1

我创建了一个 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 上创建问题。

4

0 回答 0