Ionic Cordova $ http POST-данные хорошо работают в браузере, но не работают на моем телефоне Android

Я занимаюсь разработкой гибридного приложения с использованием Ionic Framework. Я использую веб-службу $ http Restful для отправки данных на мой сервер и получения ответа от сервера. Когда я тестирую его в браузере, он работает хорошо, и я могу получить данные с сервера. Но когда я тестирую его на моем устройстве Android, он не работает вообще. Ниже мой код.

Код Angularjs

  $scope.validateBorrower = function(){
employeeNumber =  $scope.assetBorrowing.employeeNumber;
employeeName = $scope.assetBorrowing.employeeName;
employeeDeparment = $scope.assetBorrowing.employeeDepartment;

if(employeeNumber == null && employeeName == null){
alert("Please Enter Employee Number or Employee Name");
}else{
$http({
url: "http://131.4.44.69/php3/validateBorrower.php",
method: "POST",
data: {
'employeeNumber': employeeNumber,
'employeeName' : employeeName
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function(response) {
alert("Valid Employee");
$scope.assetBorrowing.employeeNumber = response[0].employeeNumber;
$scope.assetBorrowing.employeeName = response[0].employeeName;
$scope.assetBorrowing.employeeDepartment =  response[0].employeeDepartment;
$scope.borrowbtn  = false;

}).error(function(response) {
alert("error");
});
alert(employeeNumber);
}
}

PHP Backend Code

<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: false");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With");
header('P3P: CP="CAO PSA OUR"');
header("Content-Type: application/json; charset=utf-8");

$postdata = file_get_contents("php://input");
$employeeRequest = json_decode($postdata, true);
@$employeeNumber =  $employeeRequest['employeeNumber'];
@$employeeName =   $employeeRequest['employeeName'];

if(empty($employeeNumber)){
@$employeeName =   $employeeRequest['employeeName'];
}else{
@$employeeName = "";
}

$db_host = "localhost";
$db_user = "jack";
$db_password = "1234";
$db_database = "daikin_asset_management";
$conn = new mysqli($db_host, $db_user, $db_password, $db_database);

if($conn->connect_error){
echo "Connection Problem";
}

if(empty($employeeNumber) && empty($employeeName)){
echo "Error";
}else{
$getUserQuery = "SELECT * FROM xpouser WHERE  (username='$employeeName') OR (employee_no = '$employeeNumber') ";
$getUserRetval = $conn->query($getUserQuery);
$userRow = mysqli_fetch_array($getUserRetval);

$employeeName = $userRow['username'];
$employeeNumber = $userRow['employee_no'];
$employeeDepartment = $userRow['department'];
$_arr = array();
$array = array(
'employeeNumber' => $employeeNumber,
'employeeName' => $employeeName,
'employeeDepartment' => $employeeDepartment
);
$jsonObjectChannel = json_encode($array);
$jsonObjectChannel = "[" . $jsonObjectChannel . "]";echo $jsonObjectChannel;
}
?>

0

Решение

Я сам это понял. Это из-за того, что я никогда не добавляю несколько разрешений в мой файл манифеста Android. Я должен включить эти 3 разрешения в моем манифесте Android.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Затем я должен включить плагин Cordova-Whitelist и добавить его в мой config.xml

<access origin = "http://example.com" />
<allow-navigation href = "*://*.example.com/*" />
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector