我正在测试Ajax与jQuery,但我卡住了。 下面的ajax脚本显示一条提示消息"Not connect. Verify network" (jqXHR.status === 0)
。我的Ajax脚本是否正确调用了php?
事实是,指定的PHP文件路径绝对正确,并且Wamp服务器已启动并正常工作。 看起来像它找到的PHP文件,但它不会执行它(我必须在PHP中设置参数header()
?)。
这里是我的js文件:
$(document).ready(function() {
$("#connectionButton").click(function() {
var formLogin = $('#login').val();
var formPass = $('#pass').val();
$.ajax({
url: "http://localhost/cordova_test/check_login.php",
type: "POST",
data: {login: formLogin, pass: formPass},
dataType: "html",
succes: function (data) {
alert("Success: " + data);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
alert(msg);
}
});
});
});
我使用的回声在我的PHP脚本发回的数据(注释是法语,但代码仍是英文;)):
<?php
$formLogin = $_POST['login'];
$formPass = $_POST['pass'];
/* Connexion */
require_once('./connexion.php');
/* Etablissement de la requête */
$sql = $conn->prepare("SELECT * FROM membre WHERE login = :formLogin AND pass = :formPass;");
$sql->execute(array(
'formLogin' => $formLogin,
'formPass' => $formPass
));
/* Récupération des données */
$donnees = $sql->fetchAll(PDO::FETCH_ASSOC);
/* Fermeture de la connexion */
$sql->closeCursor();
/* Vérification et renvoi des données */
if(empty($donnees)) {
echo "INCORRECT_LOGIN";
}
else {
echo $donnees;
}
?>
我一直在寻找3天的解决方案,但我真的不明白。
使用'dataType:text,' – guradio
在哪里触发这个页面被访问?它也在本地主机上吗? – Tom
我认识的人会称之为“伪装的祝福”^^如果您在本地主机上存储纯文本密码,请不要在线执行此操作...您应该查看PHP内置函数,例如'password_hash' [这里](http://php.net/manual/en/function.password-hash.php)和'password_verify' [HERE](http://php.net/manual/en/function.password-verify.php) ,然后从现在开始改变这一点,不要浪费时间:安全第一!... – OldPadawan