AngularJS и Apiary.IO - не могут прочитать заголовки ответов?

Я издеваюсь над своим API, используя Apiary.io. Но почему-то я не могу прочитать заголовки из объекта ответа, используя angularJS. И я уверен, что, по крайней мере, правильно настроил Content-Type: application/json, проверив firebug. Код в Angular также должен правильно читать заголовки, так как я могу распечатать их при отправке запроса куда-то еще, кроме apiary.io...

  $http.get('http://ies.apiary.io/some').then(function(response) {  
    console.log("ok",response.headers('Content-Type'));
    },function(response){console.log("err",response);});

http://plnkr.co/edit/zMO0pXGsIdJkV0fZdBdw


person Jakub Kuchar    schedule 07.01.2013    source источник
comment
Можете ли вы настроить Plunker или jsFiddle с кодом, чтобы вы могли показать нам в контексте, где он не работает? Так мы сможем ответить вам гораздо быстрее.   -  person Josh David Miller    schedule 07.01.2013
comment
плункер   -  person Jakub Kuchar    schedule 07.01.2013


Ответы (1)


Все сводится к ошибке в firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=608735

Для запроса CORS firefox ничего не возвращает для req.getAllRequestHeaders(), хотя req.getRequestHeader('Content-Type') возвращает правильно.

Либо ошибка FF должна быть исправлена, либо Angular должен ее обойти (как это делает jQuery), либо вы должны пойти глубже и напрямую использовать экземпляр XmlHttpRequest.


Возможно, это также было связано, но, вероятно, не было основной проблемой:


Однако несколько дней назад Apiary.io не устанавливал Max-Age в заголовках CORS. Таким образом, если у вас был минимальный план, у вас может быть CORS кэшированный ответ перед полетом, и поэтому последующие запросы могут быть запрещены, даже если вы добавили в свой план дополнительные ресурсы.

Max-Age теперь установлено на 10 секунд, поэтому оно должно работать правильно. Однако в зависимости от вашего браузера предварительный кеш может по-прежнему влиять на вас. Попробуйте очистить его или протестировать это приложение в другом браузере.

person Almad    schedule 07.01.2013
comment
отлично работает в Chrome, однако Firefox по-прежнему НЕ. Firefox был очищен путем очистки кэшированного веб-контента и очистки автономного веб-контента и пользовательских данных. Даже режим приватного просмотра не помог.. - person Jakub Kuchar; 07.01.2013
comment
@JakubKuchar У меня это работает и в FF. Не могли бы вы куда-нибудь вставить пару запрос/ответ (или снимок экрана) в запрос OPTIONS? Или, возможно, создайте тикет через службу поддержки на support.apiary.io, так как это больше похоже на отладку пасеки, чем Проблема, связанная с Angular. - person Almad; 07.01.2013
comment
я создал 2 снимка экрана с помощью Firefox и Chrominium с использованием bounceapp.com, надеюсь, они будут доступны, поскольку я впервые использую bounceapp.com. - person Jakub Kuchar; 07.01.2013
comment
тикет на support.apiary.io создан - person Jakub Kuchar; 08.01.2013
comment
Проблема AngularJS существует 3 месяца назад github.com/angular/angular.js/issues/1468< /а> - person Ladislav Prskavec; 08.01.2013
comment
@Almad, есть идеи, как получить реальный объект XHR из перехватчика? - person deitch; 10.10.2013