Я пытаюсь создать приложение, которое будет взаимодействовать с сервером для хранения данных. Я пытаюсь настроить следующее. Apache сервер в локальной сети IP: 192.168.1.9: 80 Мобильное устройство в произвольной локальной сети IP: 192.168.1.3 (пример)
Приложение выполнено с использованием телефонной щели. Я отправляю Ajax вызовы на сервер для выполнения файла. php, который будет общаться с MySQL БД и сохранять некоторые пользовательские данные, но не сможет этого сделать. С другой стороны, когда я пробую то же самое приложение из Chrome (на мобильном устройстве), связь устанавливается, и данные сохраняются во внутренней БД.
Теперь я думаю, что знаю проблему, но не могу Исправить это. Проблема, которую я считаю, заключается в том, что из-за ограничений безопасности телефонный разрыв не позволяет выполнять код на стороне сервера (и по понятной причине). Я знаю, что мне нужно вставить несколько <meta>
операторов в конфиг. xml phonegap, чтобы разрешить эту связь, но все, что я пытаюсь, похоже, не работает.
Какой-то код: Ajax вызов:
$.ajax({
type: "POST",
url: "192.168.1.9/mysite/register.php",
data:{uname:u_user, pass:u_pass,uid:u_uid, email:u_email, fullname:u_fullname, address:u_address, telephone:u_telephone},
crossDomain: true,
cache: false,
success: function(d){
if (d == 'This email is already being used') {
alert ("The email is already being used. New account with existing email cannot be created.")
return true;
}
alert("Thank you for registering!");
},
error: function(e) {
alert (e)
alert("An error has occurred. Please contact reseller.")
}
});
когда я открываю chrome в режиме разработчика для поиска ошибок, я получаю:
file:///android_asset/www/192.168.1.9/mysite/register.php net::ERR_FILE_NOT_FOUND
, который показывает, что запрос сделан не на сервере, а в приложении, которое ищет приложение локальный файл в мобильном устройстве.
config. xml:
<?xml version="1.0" encoding="UTF-8"?>
<widget
xmlns = "https://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.nsbasic.{id}"
versionCode = "{phoneGapBuildCounter}"
version = "{version}">
<name>{title}</name>
<description>{description}</description>
<preference name="phonegap-version" value="{phoneGapVersion}" />
<icon src='{icon}' />
<preference name='SplashScreenDelay' value='2000' />
<preference name='AutoHideSplashScreen' value='true' />
<plugin name='cordova-plugin-splashscreen' source='npm' />
<preference name="permissions" value="none"/>
<!-- sample preference specifications -->
<!-- <preference name="autorotate" value="false" readonly="true"/> -->
<!-- <preference name="orientation" value="default" /> -->
<!-- <preference name="fullscreen" value="true" /> -->
<!-- Platforms: Customize as needed. -->
<gap:platforms>
<gap:platform name="android" />
<gap:platform name="ios" />
</gap:platforms>
<plugin name="cordova-plugin-statusbar" source="npm" />
<preference name="StatusBarOverlaysWebView" value="{phoneGapStatusBarOverlay}" />
<preference name="StatusBarBackgroundColor" value="{phoneGapStatusBarColor}" />
<preference name="StatusBarStyle" value="{phoneGapStatusBarStyle}" />
<plugin name="cordova-plugin-whitelist" source="npm" />
<allow-navigation href="*" />
<access origin="*" />
<allow-intent href="*" />
</widget>
Я также добавил следующее для политики безопасности содержимого:
default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline'; media-src *; img-src * data:;
Есть идеи, почему это не работает?
С наилучшими пожеланиями.