Dies ist mein erstes Cordova-Projekt. Meine HTTP-Anfrage verarbeitet die lokale PHP-Datei nicht mit POST. Der Code funktioniert und verarbeitet ihn ordnungsgemäß, wenn die PHP-Datei auf dem Server gehostet wird. Aber nicht, wenn die PHP-Datei lokal ist. Das Bearbeiten von Dateien direkt auf dem Server ist so mühsam und dauert viel Zeit, anstatt es nur lokal zu haben. Und ich wollte die Lösung dafür wissen, weil es die Entwicklung wirklich viel einfacher macht. HierCordova - HTTP-Anfrage verarbeitet kein lokales PHP
ist der Javascript-Code
$(document).ready(function() {
$("input").on("focus", function (e) {
e.preventDefault();
e.stopPropagation();
window.scrollTo(0,0);
});
$("#loginBtn").click(function() {
swal({
title: "Logging in ...",
imageUrl: "../images/ring-alt.gif",
showConfirmButton: false,
});
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username != "") {
if (password != "") {
$.post("../php/login.php",
{
username: username,
password: password
},
function (data, status) {
alert(data);
});
} else {
sweetAlert("Oops...", "Please enter your password!", "error");
}
} else {
sweetAlert("Oops...", "Please enter your username!", "error");
}
});
});
alert (Daten) zeigt die gesamte PHP-Datei, anstatt sie zu verarbeiten. Hingegen, wenn es aus der Ferne zugegriffen wird, funktioniert es gut.
Hier ist der Code js Arbeits (remote/hosted PHP-Dateien)
$(document).ready(function() {
$("input").on("focus", function (e) {
e.preventDefault();
e.stopPropagation();
window.scrollTo(0,0);
});
$("#loginBtn").click(function() {
swal({
title: "Logging in ...",
imageUrl: "../images/ring-alt.gif",
showConfirmButton: false,
});
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username != "") {
if (password != "") {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText == "successsuccess") {
window.location.href = '../html/dashboard.html';
} else {
sweetAlert("Oops...", "Invalid username or password!", "error");
document.getElementById("password").value = "";
}
}
}
xmlhttp.open("POST", "http://www.sampleee.esy.es/login.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("username=" + username + "&" + "password=" + password);
} else {
sweetAlert("Oops...", "Please enter your password!", "error");
}
} else {
sweetAlert("Oops...", "Please enter your username!", "error");
}
});
});
hier Jetzt ist die PHP-Datei
<?php
include("connectdb.php");
$username = mysqli_escape_string($conn, $_POST['username']);
$password = mysqli_escape_string($conn, $_POST['password']);
$password = md5($password);
$getLogin = "SELECT id FROM user WHERE username = '$username' and password = '$password'";
$result = mysqli_query($conn, $getLogin);
if(!$result){
echo "Query Error: ". mysqli_error($conn);
die();
}
$count = mysqli_num_rows($result);
if($count == 1){
echo "success";
}else{
echo "failed";
}
?>
PHP-Code funktioniert in keiner Umgebung; Es muss tatsächlich von einem PHP-fähigen Server verarbeitet werden. Für lokale Entwicklung, installiere ein PHP dev env wie xampp und sende deine AJAX Anfragen an 'localhost'. –
Folgen Sie @ChrisG Beratung: Bauen Sie sich eine richtige Entwicklungs-/Produktionspipeline. Build & Test lokal (dh Ihre Entwickler-Box hostet eine lokale Version Ihres Servers), dann drücken Sie auf Produktion, wenn Sie zur Prime-Time bereit sind. Sie werden in der Lage sein, ein gut konstruiertes System zu entwerfen, das dem Test der Nutzung standhält. Selbst wenn Sie auf dem Weg eine Methode finden, einen Server lokale PHP-Dateien verarbeiten zu lassen, tun Sie das nicht. Ihr Server wird in kürzester Zeit tief gehackt. – YvesLeBorg
Schätzen Sie die Kommentare, Sir. Vielen Dank! –