2014-11-11 2 views
3

Я пытался сделать вызов ajax с базовой аутентификацией в гибридном мобильном приложении ios. Ajax-вызов не возвращает ничего, что он просто не имеет успеха или неудачи. Но тот же вызов ajax успешно запускается с android.Базовая аутентификация не работает в кордове ios

В то время как я проверял исходящий запрос с Wireshark я обнаружил, что заголовок аутентификации отсутствует, и 401 возвращается с моего сервера и последующего вызова заголовок аутентификации также отправить вместе с запросом, который возвращает 301. но он работает с андроида

то же апи работал отлично от моего Dev сервера в ИОС, но не в моем прод сервере

Любые предложения оценили

+0

В вашем имени пользователя есть символ «@»? Получите наполовину аналогичную проблему, которую я разместил здесь: http://stackoverflow.com/questions/27261345/jquery-ajax-fails-when-basic-auth-username-has-symbol-ios-cordova – blak3r

+0

Вы нашли решение для этого вопрос? –

+0

Все еще не разобрались в решении, но если исправили его, используя plug-in cordova, чтобы сделать мои HTTP-вызовы из приложения –

ответ

1

Я использую cordova 4.2.0.

Я заметил, что в случае ответа 401 с заголовком «WWW-Authenticate: Basic» IOS/UIWebView, похоже, проглатывает ответ вместо передачи его обратно на прикладной уровень, что дает эффект обслуживания никогда не реагируя. Возможно, это предотвращает всплывающие окна.

В любом случае поведение совершенно неожиданно!

редактировать: Я нашел сообщение об ошибке Cordova этой проблемы: https://issues.apache.org/jira/browse/CB-2415

0

Это, кажется, решена с Cordova IOS платформы 4.X и более поздних версий. Я только что обновил старое приложение от использования UIWebView до WKWebView, и эта проблема больше не возникает, и мы могли бы удалить относительно болезненное обходное решение (используя синхронные вызовы).