JQuery Ajax вызывает сбой IE8 / 7, когда данные возвращаются из службы WCF - PullRequest
1 голос
/ 06 февраля 2012

Я создал веб-сервис WCF. Я называю это usinq 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 (не уверен, что за единицы в скрипаче). 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.

...