AngularJS: невозможно получить responseHeaders после сохранения $resource $

Я выполняю следующий $save, который вызывает мой angularJS $resource и POST для моего API. Я могу отлаживать свой обработчик обратного вызова, и объект фактически создается в моем API.

myObj.$save({}, function (value, responseHeaders) {
    myObj.someSuccessFunction();
}, function (responseText) {
    myObj.someFailureFunction();
});

Я не могу ничего получить из параметра «responseHeaders». "responseHeaders()" возвращает пустой объект. Я хотел бы получить заголовок ответа «местоположение» следующим образом: responseHeaders («Местоположение»).

Стоит отметить, что Response заполняется при отладке в chrome. Объект «responseHeaders» по какой-то причине не может быть заполнен.

Как мы можем получить эти заголовки ответов?

Спасибо!


person mtical    schedule 06.01.2014    source источник
comment
Разве первый аргумент $save() не является объектом параметра, а второй не является обратным вызовом? Что заставило бы функцию, которую вы передаете, оцениваться для объекта (параметра), который, как ожидается, будет возвращен. Попробуйте myObj.$save({}, function .... )   -  person towr    schedule 06.01.2014
comment
Спасибо @towr, это правильно. Я обновил вопрос, чтобы отразить это. Все еще вижу ту же проблему, несмотря ни на что.   -  person mtical    schedule 15.01.2014


Ответы (3)


Может ли это быть проблемой CORS? Если вы выполняете вызов через домен, обязательно включите cors.exposed.headers в предварительный вызов OPTIONS.

person Community    schedule 15.01.2014

Если это междоменный вызов, вы должны добавить следующий заголовок в заголовки ответа:

Access-Control-Expose-Headers: Location

Благодаря этому браузер может отображать ваши таможенные заголовки и читать их угловатыми.

person nancoder    schedule 18.05.2014

У меня такая же проблема с фильтром Spring Security 4.2 CORS и AngularJS. Мое клиентское приложение, созданное с использованием Angular JS, не может прочитать токен аутентификации клиента из заголовка ответа, отправленного API Spring Rest.

Я мог бы решить проблему, разоблачив заголовки ниже.

config.addExposedHeader("Origin");
config.addExposedHeader("X-Requested-With");
config.addExposedHeader("X-AUTH-TOKEN");
config.addExposedHeader("Content-Type");
config.addExposedHeader("Accept");
config.addExposedHeader("Authorization");
config.addExposedHeader("Location");

После вышеуказанного исправления. Мой код Angular умеет читать заголовки.

person SateeshKasaboina    schedule 24.05.2016