Сбой вызова PhoneGap Ajax на HTTPS-сервер с самозаверяющим сертификатом
Я относительно новичок в PhoneGap, и я недавно настроил HTTPS/SSL на моем сервере Windows Apache с самозаверяющим сертификатом и пытаюсь сделать HTTPS-запрос ajax пост. Запрос работает нормально, когда запускается в браузере, но не выполняется при запуске внутри телефонной пробелы. Я попытался установить Android: отладка на ложь, но это не решило проблему. Я также провел некоторое исследование, и кажется, что phonegap поддерживает HTTPS-запросы ajax, поэтому я не понимаю, почему запрос не выполняется.
Кто-нибудь знает, почему это может быть?
2 ответа
Это цитата Джо Боузера, который написал код, позволяющий самостоятельно подписывать сертификаты на PhoneGap Android:
- Если вы занимаетесь разработкой: android:debuggable="true" в манифесте, вы должны разрешить браузеру запрашивать данные с серверов с самозаверяющим или неверным сертификатом SSL.
- Если вы выпускаете приложение, вы должны удалить android:debuggable="true" (Android Market в любом случае не разрешит вам выпускать это), и вы НЕ сможете отправлять данные на сервер с неверным сертификатом SSL
- Если у вас не установлен этот флаг, по умолчанию будет то, что используется по умолчанию, то есть вы не сможете отправлять данные на серверы с самозаверяющим сертификатом.
Похоже, что вы должны быть в состоянии сделать то, что вы хотите, установив android:debuggable="true". Если это не работает для вас, нам нужно получить сценарий воспроизведения от вас, версию PhoneGap и версию Android, которую вы используете.
Вероятно, лучше всего поднять ошибку в Jira для нас:
Я потратил часы на эту проблему, пока не обнаружил, что возможно быстрое и грязное исправление. Это включает в себя переопределение CordovaWebViewClient
игнорировать ошибки сертификата.