Ionic - нет ответа от $ http при базовом входе

0

Мы создаем приложение Ionic с Symfony api, и у нас есть проблема с $ http при входе в iOS. Когда логин или пароль не верны, $ http никогда не получал ответа от api и таймаута 30 секунд спустя со статусом 0, хотя все работает отлично на Android с тем же кодом (ответы api одинаковы независимо от платформы). Мы пробуем много разных вещей, но похоже, что iOS отказывается получить ответ на этот конкретный запрос. Другие запросы работают нормально, ответ и статус принимаются, как ожидалось. Ниже приведен код запроса на вход

$http.defaults.headers.common.Authorization = 'Basic ' + Base64.encode(user + ':' + password);
$http.get("https://myserver.com/api/login")
.success(function(data, status) {
       console.log("success");
})
.error(function(error, status) {
       console.log("error");
});

Кто-нибудь сталкивался с такой проблемой с iOS или даже знал, как ее исправить (или, по крайней мере, отладить ее!)? Я не знаю, какой код может заставить вас помочь нам, так что дайте мне знать!

РЕДАКТИРОВАТЬ:
Пока не найдено решение, но теперь я понимаю проблему!
Когда HTTP-статус ответа равен 401, он устанавливает заголовок с именем WWW-Authenticate. Но Кордове не нравится этот заголовок (возможно, из-за "" в значении заголовка), поэтому не отправлял ответ на приложение...

Проблема с apache:
https://issues.apache.org/jira/browse/CB-2415
Другая публикация по теме:
Обработка HTTP 401 с помощью WWW-аутентификации в приложении Cordova/Ionic iOS

Итак, теперь моя проблема изменилась: как удалить заголовок из ответа Symfony Http Basic Authentification?

  • 0
    Не хочу быть педантичным, но я думаю, что методы .success () и .error () устарели.
  • 0
    Вы правы, согласно w3c, хорошим методом является $ http.get ('/ someUrl', config) .then (successCallback, errorCallback), но этот тоже не работает
Теги:
ionic-framework
http

1 ответ

0

Это немного сложно отлаживать без ошибки, чтобы посмотреть, но вы можете попробовать:

  • Предполагая, что ваш URL-адрес не основан на https, ваша ошибка, скорее всего, связана с блокировкой ios без HTTP-запросов. Его можно исправить добавлением этого кордового крючка

  • Попробуйте добавить свой домен в белый список в файле config.xml, как этот <allow-navigation href="https://myserver.com/*"/>

  • 0
    Да, отсутствие этой ошибки - моя самая большая проблема с этой ошибкой! Все мои URL основаны на https, и этот запрос является единственным, который не работает. Белый список устанавливается и настраивается с href="*" для каждого параметра (я также безуспешно href="https://myserver.com/*" )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню