CORS, использующий ajax в PhoneGap + jQuery Mobile, не работает на устройстве, но работает в браузерах
Поэтому я создаю приложение, используя Phone Gap и jQuery mobile.
При использовании ajax для получения ответа json от сервера из белого списка я получаю сообщение об ошибке. Однако в консоли ничего не отображается. Странно то, что при тестировании приложения в веб-браузере оно работает нормально, только когда я запускаю свое устройство iphone, оно выбрасывает строп.
Стоит сказать, что сайт, на котором я размещаю свои php-скрипты, занесен в белый список в Phone Gap. Я использую * в массиве (на всякий случай это имеет значение). Я разработал обходной путь jsonp для этого, но не хочу его использовать - я чувствую, если он работает в браузерах, это должно быть возможно на устройстве. Я надеюсь, что это просто исправить ...
Вот мой простой скрипт php, просто повторяющий строку json.
<?php
header('Access-Control-Allow-Origin: *');
$arr = array('a' => 1, 'b' => 2);
echo json_encode($arr);
?>
Вот JS
$('#registerUser').submit(function() {
$.ajax({
url: 'http://www.mydomain.co.uk/path/register/add_user.php',
type: 'post',
dataType: 'json',
crossDomain : true,
timeout: 5000,
success: function(msg){
alert(msg.a);
},
error: function(){
alert('There was an error loading the data.');
}
});
});
});
редактировать: у меня также есть этот js на странице ... рекомендуется на мобильных документах jquery использовать это при использовании Phone Gap
<script>
$( document ).on( "mobileinit", function() {
$.mobile.allowCrossDomainPages = true;
$.support.cors = true;
});
</script>
И форма - я не думаю, что это необходимо ...
<form id='registerUser' action="" method="POST">
<div data-role="fieldcontain">
<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" />
<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" />
<label for="name">Password:</label>
<input type="password" name="password1" id="password1" value="" />
<label for="name">Re-enter password:</label>
<input type="password" name="password2" id="password2" value="" />
<br>
<button type="submit" aria-disabled="false">Submit</button>
</div>
</form>
Спасибо за помощь в продвижении!