Я пытаюсь создать мобильное приложение с помощью cordova. Мне нужен был qr-сканер, поэтому я добавил для этой цели сканер штрих-кода телефонного зазора:
https://github.com/phonegap/phonegap-plugin-barcodescanner
Скрипт, который я пытаюсь запустить, следующий:
<script>
function scan() {
cordova.plugins.barcodeScanner.scan(
function (result) {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
cadeaubon = JSON.parse(xmlhttp.responseText);
}
}
xmlhttp.open("GET", "php/getCadeaubon.php?id = " + result.text, true);
xmlhttp.send();
},
function (error) {
alert("Scanning failed: " + error);
},
{
preferFrontCamera : false, // iOS and Android
showFlipCameraButton : true, // iOS and Android
showTorchButton : true, // iOS and Android
torchOn: false, // Android, launch with the torch switched on (if available)
saveHistory: true, // Android, save scan history (default false)
prompt : "Place a barcode inside the scan area", // Android
resultDisplayDuration: 500, // Android, display scanned text for X ms. 0 suppresses it entirely, default 1500
formats : "QR_CODE,PDF_417", // default: all but PDF_417 and RSS_EXPANDED
orientation : "landscape", // Android only (portrait|landscape), default unset so it rotates with the device
disableAnimations : true, // iOS
disableSuccessBeep: false // iOS and Android
}
);
}
</script>
Сценарий php, который запускается с этим XMLHttpRequest, выглядит следующим образом:
<?php
$id = $_GET['id'];
$server = "127.0.0.1";
$username = "root";
$password = "AHR1822";
$db = "lekker_lokaal";
$conn = new PDO("mysql:host=$server;dbname=$db", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->query("
SELECT cadeaubonID, handelaarsID, genBonLocatie, waarde, ontvanger, koper, aankoopdatum, status
FROM cadeaubons
WHERE cadeaubonID ='".$id."'
");
$outp = array();
$outp = $result->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($outp);
?>
Но когда я запускаю сборку этого проекта для Android или браузера, вместо запуска PHP-кода он просто возвращает файл. Это нормально работало, когда я использовал тот же метод в обычном веб-приложении.
Может ли кто-нибудь мне помочь, потому что у меня сейчас нет идей.
Я понял, что использовал wamp-сервер в этом скрипте, когда запускал его для своего обычного веб-приложения, поэтому я создал базу данных на Infinity Free. Когда я попытался подключиться к этой онлайн-базе данных, все работает нормально, но на кордове XMLHttpRequest по-прежнему возвращает содержимое файла php, так что, по крайней мере, это не проблема
Кроме того, я не думаю, что проблема в сервере / базе данных, файл php хранится локально, и даже если он не включает какое-либо соединение с базой данных, проблема все еще сохраняется ...
О, я думаю, проблема в кордове. В соответствии с этим вопросом кордова не может интерпретировать файлы php stackoverflow.com/questions/30636828/… Я попытаюсь разместить их на FTP-сервере и попробую таким образом
Хорошо, поэтому я разместил файлы сценариев php на 000WebHost и назвал их в своем javascript, теперь, похоже, все работает нормально. Просто нужно добавить плагин белого списка Cordova для Android.






Вы проверяли конфигурацию сервера?