我正在測試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