私はデータベースとのコミュニケーションのすべての部分を集めて、cordovaアプリケーションでajaxリクエストを実行する必要があります。だから、私はローカルホストを設定し、データベースを作成し、そこに私のPHPファイルを作成し、cordovaを設定し始めた。私はブラウザで最初にそれを開発し、それを行くことができたが、今はすべてのAjaxリクエストは実行されていない。例えば、これは私のlogin.htmlをファイルです:AJAXリクエストはコードバで働いていませんか?
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script type="text/javascript" src="js/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<link rel="stylesheet" href="css/jquery.mobile-1.4.5.min.css" />
<link rel="stylesheet" href="css/style.css" />
<script type="text/javascript">
$(document).ready(function() {
$("#insert").click(function() {
var username = $("#username").val();
var password = $("#password").val();
var dataString = "username=" + username + "&password=" + password;
if ($.trim(username).length > 0 && $.trim(password).length > 0) {
$.ajax({
type: "POST",
url: "http://localhost/jan/login.php",
data: dataString,
crossDomain: true,
cache: false,
success: function(data) {
if (data == "success") {
window.sessionStorage.setItem("loggedIn", 1);
window.sessionStorage.setItem("username", username);
window.location.replace("index.html");
} else if (data == "error") {
alert('error');
}
}
});
}
return false;
});
});
</script>
</head>
<body>
<div data-role="page">
<div data-role="header"><h1>Login</h1></div>
<div data-role="content">
<div class="list">
<div class="item">
<label>Username</label>
<input type="text" id="username" value="" />
</div>
<div class="item">
<label>Password</label>
<input type="password" id="password" value="" />
</div>
<div class="item">
<input type="button" id="insert" class="button button-block" value="Login" />
</div>
</div>
</div>
<div data-role="footer" class="center">
<a href="register.html">Register</a>
</div>
</div>
</body>
</html>
これは
<?php
include 'db.php';
$data=array();
$q=mysqli_query($con,"select password from users where username=\"{$_POST['username']}\"");
if(mysqli_num_rows($q) === 0)
die('error');
$row=mysqli_fetch_assoc($q);
if($row['password'] == $_POST['password'])
echo 'success';
?>
すべてがブラウザで期待どおりに動作しますlogin.phpがあるが、私はAndroidのエミュレータでそれを実行しようとすると、 Android Studioを使用すると、送信ボタンは何もしません。しかし、私はそれが必要なようにページを切り替える登録を押してください。だから私は間違ったajaxの実装やデータベースの設定が原因であると結論づけました。
P.S.アプリの変更を見るには、wwwフォルダからapps/android/assets/wwwにすべてのファイルをコピーする必要がありますか?
P.P.S私の意見では、エミュレータはローカルホストにアクセスできないため、データベースに問題があります。アプリケーションを使用してユーザーのログイン/登録を使用してコードバアプリを使用したい場合、バックエンドを設定するにはどうすればよいですか?私はWebサーバーからこれらのphpファイルを実行しようとしましたが、私のアプリケーションとデータベースが同じドメイン上で実行されないため、ajaxでクロスドメインの問題が発生しました。