Кросс-доменный запрос AJAX POST отлично работает в веб-браузерах, включая браузеры на мобильных телефонах, но не работает для встроенных приложений, построенных с помощью Phonegap
Я создал регистрационную форму, в которой пользователи должны вводить свои учетные данные для входа, затем они проверяются сервером, который размещен на heroku, и возвращает json {"success":true}
, если введены действительные учетные данные.
Мой Ajax script:
$.ajax({
type: "POST",
url: "http://domain.com/public/auth/app-login",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
dataType: "json",
data: {identity: <username from form>, password: <password from form>},
crossDomain: true,
cache: false,
success: function(data) {
obj = JSON.parse(data);
if (obj && obj.success === true) {
window.location.href = 'home.html';
}
},
error: function(e) {
alert('Error: ' + e.message);
}
});
Шаги, предпринятые для решения этой проблемы:
- "Белые страницы домена" - config.xml
<access origin="http://domain.com/public/auth/app-login" />
<access origin="*" />
- Передача jQuery для разрешения междоменного
$.support.cors = true;
ИЛИ
jQuery.support.cors = true;
- Отключить кэширование
cache: false
Любая помощь приветствуется.