Backbone.js не анализировал данные в IE

Я использую backbone.js для создания веб-сайта. Он отлично работает на нашем сервере разработки, но не анализирует данные на клиентском сервере с использованием IE7-9. (Файрфокс, Сафари нормально)

Я обнаружил, что магистраль вызывает fetch() для запроса данных, но не запускает parse() при возврате данных. Я не могу найти успех или возврат ошибки. Есть часть кода:

EMR.CategoriesCollection = Backbone.Collection.extend({

        url : 'contents/json/categories.txt',

        initialize:function () {
            console.log('Get data from:', this.url);
            this.fetch();
        },

        model: EMR.ItemModel,

        parse : function(data) {
            console.log("CategoriesCollection parse data:", [data]);
            return data; 
        }
    });

Пожалуйста, сравните две ссылки ниже (в IE 7-9), это один и тот же набор кода, разница только в сервере:

Это работает: 1) http://pms.dq.hk/clients/amex_eMR/client/cn/emr/test_data.html

Не удается: 2) http://qwww.americanexpress.com/hk/cn/emr/test_data.html

Если магистраль отправила fetch(), но parse() не сработала, как отследить проблему?

Любые возможные способы, которыми я могу попробовать?

Спасибо за ваше предложение.

С уважением,

Майкл


person Michael    schedule 31.05.2012    source источник


Ответы (3)


единственные различия между ними, которые я вижу, - это заголовки ответов.

ваш сервер:

Connection  Keep-Alive
Date    Thu, 31 May 2012 03:41:16 GMT
Etag    "ae6691-123ac-59de3b00"
Keep-Alive  timeout=15, max=98
Server  Apache/2.0.63 (Unix) PHP/5.3.2 DAV/2

клиентский сервер:

Connection  keep-alive
Content-Type    text/plain; charset=big-5
Date    Thu, 31 May 2012 03:41:25 GMT
Last-Modified   Tue, 22 May 2012 06:41:10 GMT
Vary    Accept-Encoding

тип содержимого в ответе клиентского сервера привлек мое внимание, но я не эксперт по IE. Возможно, вы захотите указать, с какой версией IE у вас возникли проблемы, и протестировать другие версии, чтобы изолировать ее.

person lecstor    schedule 31.05.2012
comment
Спасибо за ваш ответ. Я тестировал IE 7-9, у всех проблемы. - person Michael; 31.05.2012

Любые возможные способы, которыми я могу попробовать?

Привет. Вы пытались добавить обратный вызов ошибки в метод выборки? Кроме того, «сбойный» сервер отправляет сжатый контент в сжатом виде. Может быть, IE не может правильно обрабатывать сжатый JSON? Или, может быть, вы можете попробовать изменить заголовок Content-Type с «text/plain» на «application/json»?

person theotheo    schedule 31.05.2012

Проблема здесь: http://forum.jquery.com/topic/the-problem-with-ie8-and-encoding-error-c00ce56e

Сервер нашего клиента возвращает данные в

Content-Type    text/plain; charset=big-5

Когда я добавил обработчик ошибок в fetch(), я вижу возврат ошибки «Не удалось завершить операцию из-за ошибки c00ce56e». Это причина, по которой parse() не работает.

Я не могу изменить настройку сервера клиента, поэтому я помещаю файл данных в другой каталог, который возвращает Content-Type text/plain; решить проблему.

person Michael    schedule 04.06.2012