Получение URL-адреса из ответа ajax с использованием EmberJS

Может ли кто-нибудь помочь мне в том, как получить URL-адрес из ответа Ajax в Ember. Это необходимо для обработки конкретного случая использования, когда сервер перенаправляет на другой URL-адрес и возвращает данные с нового URL-адреса (перенаправление 302).

Если я могу получить URL-адрес из ответа, я могу проверить, отличается ли запрошенный URL-адрес от URL-адреса ответа, и могу ли я предпринять соответствующие действия.

Примечание. Если мы используем Angular (пробовали с Angular4), то мы можем получить детали ответа, включая URL-адрес и заголовок, из ответа, если вы используете службу Http из '@angular/http'

Я использую следующую конфигурацию для EmberJS -ember-cli: 2.14.2 -node: 8.1.0 -os: darwin x64


person Sareesh    schedule 02.11.2017    source источник
comment
что ты пробовал? Где и как вы берете данные? Вы говорите о ember-data?   -  person Lux    schedule 02.11.2017
comment
Я пытался получить подробности, используя Ember.$.ajax? Если есть другой вариант, пожалуйста, дайте мне знать.   -  person Sareesh    schedule 03.11.2017


Ответы (1)


В комментарии вы указали, что получаете запись, используя Ember.$.ajax. Ember.$ — это не более чем псевдоним для jQuery. Итак, Ember.$.ajax совпадает с jQuery.ajax. После документации jQuery.ajax success функция вызывается с jqXHR объект в качестве третьего аргумента. Это надмножество нативных объектов XMLHttpRequest браузеров. Объект XMLHttpRequest предоставляет доступное только для чтения свойство responseURL, которое это то, что вы ищете.

В общем, я бы рекомендовал не использовать jQuery.ajax в современных приложениях Ember. Есть две отличные альтернативы:

  • ember-fetch предоставляет HTML5 fetch полифил из github в оболочке и в комплекте для ember-cli.
  • ember-ajax предоставляет службу для выполнения запросов AJAX, которые предоставляют обещания RSVP.

Также ведется работа по переходу с jQuery.ajax в ember-data.

person jelhan    schedule 02.11.2017
comment
Спасибо за ответ, я могу реализовать логику с помощью «ember-fetch». - person Sareesh; 03.11.2017