javascript - ajax调用时如何从php文件中执行代码
问题描述
好的,所以我有 php 代码,它应该在尝试登录时检查数据库中是否存在现有用户并发送回 javascript 失败或成功
php代码:
<?php
require_once 'Korisnik.php';
require_once 'dbconn/korisnikdb.php';
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// collect value of input field
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$korisnik = getKorisnikByUserPass($username, $password);
if ($korisnik == null) {
$statusArray = array("status"=>"fail");
echo json_encode($statusArray);
return;
} else {
session_start();
$_SESSION["prijavljeniKorisnik"] = $username;
$statusArray = array("status"=>"success");
echo json_encode($statusArray);
return;
}
}
?>
这里我有我的 javascript 代码:
$(document).ready(function() {
var usernameInput = $('#usernameInput');
var passwordInput = $('#passwordInput');
var pogresniPodaci = $('#pogresniPodaci');
var praznaPolja = $('#praznaPolja');
pogresniPodaci.hide();
praznaPolja.hide();
$('#submitButton').on('click', function(event) {
var username = usernameInput.val();
var password = passwordInput.val();
console.log(username);
console.log(password);
if (username == '' || password == '') {
praznaPolja.show();
event.preventDefault();
return false;
}
var params = {
'username': username,
'password': password
}
$.post('loginCheck.php', params, function(data) {
console.log(data.status);
if (data.status == 'fail') {
pogresniPodaci.show();
usernameInput.val('');
passwordInput.val('');
return;
}
if (data.status == 'success') {
location.href = 'pocetna';
}
});
event.preventDefault();
return false;
});
});
http://prntscr.com/skb37r -> 在这里你可以看到我按下那个按钮后的状态
问题是 loginCheck.php 中的 php 代码从未真正执行过,我尝试在 php 文件的开头添加 echo 但它没有执行。
解决方案
您正在向 localhost 发送 http 请求。即使文件不存在,您的 localhost 也会返回状态 200,除非它被配置为抛出错误。
试试这个:转到http://localhost/loginCheck.php并在那里回显任何内容。
echo "This is loginCheck";
如果它回显,您就在正确的路径上登录检查文件。如果可行,请转到浏览器开发工具 > 网络 > 并查看请求标头并找到“请求 URL”标头。它应该是“ http://localhost/loginCheck.php ” - 您之前访问过的文件的路径。如果不是,您必须在 $.post 请求中修复它。
推荐阅读
- c - 如何将 portaudio 录制的样本写入不同的文件?
- php - POST filter_input_array & 非特定的多维数组
- python-3.x - 如何按属性分组并计算该属性的连续票证之间的时间
- java - 跟踪用户输入的整数的最大值和最小值
- docker - 恢复 docker swarm 集群
- python - 使用 Python - xlsxwriter 写入文件后,条件格式仍然适用。有没有办法让它不起作用?
- r - 用两个平行的列名列表改变多列的整洁方法
- excel - vba - 多个条件的总和
- php - php中的字符串函数(str_replace)
- android - 如何在 Android Studio 中使用 Gradle 刷新依赖项(Gradle 窗口中缺少刷新按钮)