这是我的javascript和php代码登录在jquery移动,但我得到了这个请求的解析器错误。请帮我一下。
<script>
$("#login").click( function () {
//collect userName and password entered by users
var username = $("#username").val();
var password = $("#password").val();
//call the authenticate function
authenticate(username, password);
});
//authenticate function to make ajax call
function authenticate(username, password) {
$.ajax({url: "http://localhost/track/signinmobile.php",
data: '{"username": "' + username + '", "password" : "' + password + '"}',
dataType: "jsonp",
jsonpCallback: 'successCallback',
async: true,
beforeSend: function() {
$.mobile.showPageLoadingMsg(true);
},
complete: function() {
$.mobile.hidePageLoadingMsg();
},
success: function (result) {
alert(result);
},
error: function (request,error) {
alert("this is"+ error);
},
successCallback:function(){
}
});
</script>
<div data-role="fieldcontain" class="ui-hide-label">
<form id="login" >
<label for="username">Username:</label>
<input type="text" name="username" id="username" value="" placeholder="Username"/>
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="" placeholder="Password"/>
<input type="submit" name="login" id="login" value="Login"/>
</form>
</div>
是否有任何错误在我的javascript代码?这是我的signinmobile.php和数据库连接正在工作。
<?php include"connection.php";
$email=$_GET['username'];
$password=$_GET['password'];
$user=mysql_query("SELECT * FROM users");
while($row=mysql_fetch_array($user))
{
if (($email==$row['email']) && ($password==$row['password']))
{
$response_array['status'] = 'success';
}
else {
$response_array['status'] = 'error';
}
}
header('Content-type: application/json');
echo json_encode($response_array);
?>
您缺少一个}
来关闭认证功能。
此外,您的表单和提交按钮具有相同的id。一般来说,使用两个具有相同id的html标签是一个坏主意,这意味着您的函数在单击表单后被调用。
你应该把你的脚本包装在$(document).ready.
$(document).ready(function() {
// your script.
});
这将防止脚本在元素加载之前运行。
您还应该通过使用return false;
语句结束click函数来防止表单提交。这将阻止页面刷新。
我没有jsonp的经验,但它会为我生成一个错误。我建议使用正常的json,但我不知道你的其他计划与脚本。
发送到服务器的数据是一个字符串,您应该使用javascript对象。这是通过删除引号和加号来完成的。
data: { username: username, password: password },