朋友您好我是Phonegap的新手,我使用 PHP 制作简单的登录应用程序。 我有类似的文件类型:
所以我的问题是当我在android上的phonegap上运行我的程序时,我的 mob_login.php 文件无效。
我的index.html文件是: -
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PhoneGap Login</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="jquery.mobile-1.1.1.js"></script>
<script type="text/javascript" charset="utf-8">
function login() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$(document).ready(function() {
var user = $("#user")[0].value;
var pass = $("#pass")[0].value;
$("#message")[0].value = "In function "+user +" "+ pass;
$.ajax({
type: "POST",
url: "http://10.0.0.2/mob_login.php",
data: "users"+user+"&pass="+pass,
success: function(result){
$("#message")[0].value = result;
alert("Result "+result);
}
});
});
}
</script>
</head>
<body>
<form>
Username: <input type="text" size="25" id="user"/>
<br />
Password: <input type="text" size="25" id="pass"/>
<br />
<input type="text" size="25" id="message" value="error message" />
<br />
<input type="button" value="Submit" onclick="login()"/>
</form>
</body>
</html>
和我的mob_login.php文件是: -
<?php
$user = $_REQUEST['user'];
$pass = $_REQUEST['pass'];
if($pass == "123" && $user == "kirit"){
echo "Login Sucsess";
} else {
echo "Login Fail";
}
?>
我的cordova.xml文件是: -
<?xml version="1.0" encoding="utf-8"?>
<cordova>
<access origin="http://10.0.0.2*"/>
<log level="DEBUG"/>
<preference name="useBrowserHistory" value="false" />
</cordova>
这是我的文件,我怎么能解决问题,请尝试多种方式,但我无法解决,请朋友帮帮我吗?
答案 0 :(得分:1)
u placed users in ajax code instead of "user=" try below code
$.ajax({
type: "POST",
url: "http://ipaddress of ur system/JQuery/mob_login.php",
data: "user="+user+"&pass="+pass,
success: function(result){
$("#message")[0].value = result;
alert("Result "+result);
}
});
});
答案 1 :(得分:0)
问题是你需要在点击时进行AJAX调用,而不是在文档加载完成后。这是一个问题:
var user = $("#user")[0].value;
var pass = $("#pass")[0].value;
此代码在页面加载时执行,但在那一刻,用户和传递输入具有空值。单击登录按钮时,您需要更改代码以进行此分配。
此外,你可以删除'ready'监听器,只需编写登录函数:
function login() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
var user = $("#user").val();
var pass = $("#pass").val();
$("#message").text("In function "+user +" "+ pass);
$.ajax({
type: "POST",
url: "http://10.0.0.2/mob_login.php",
data: "users"+user+"&pass="+pass,
success: function(result) {
$("#message")[0].value = result;
alert("Result "+result);
}
});
}
代码中的问题是,当调用login函数时,ready事件已经被调度,因此ajax请求永远不会被发送到服务器。
希望这会有所帮助。祝你有美好的一天。