【发布时间】:2016-01-16 22:34:38
【问题描述】:
我已经在网站上工作了很长一段时间,但这一切都是在 localhost 上完成的。使登录表单正常工作后,我决定将其上传到主机。
问题是如果我使用方法,ajax 的回调函数似乎不起作用:POST
如果我将 POST 更改为 GET 它将工作......
Ajax 代码:
$.ajax({
method: 'POST',
url: "php/login.php",
data: { username: val_username, password: val_password },
success: function(response) {
if (response == 0) {
location.reload();
} else {
alert("Wrong username or password. Error #"+response);
}
}
});
登录.php
<?php
session_start();
require "../php_includes/mysql.php";
// Create connection
$conn = new mysqli($db_server, $db_user, $db_pass, $db_name);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// escape your parameters to prevent sql injection
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT * FROM korisnici WHERE username='$username'";
$sql_result = $conn->query($sql);
if ($sql_result->num_rows > 0) {
$row = $sql_result->fetch_assoc();
if (password_verify($password, $row["password"])) {
$_SESSION["loggedin"] = true;
$_SESSION["userid"] = $row["id"];
echo 0;
} else echo 2;
} else echo 1;
?>
我检查了所有文件位置,没有问题,因为如果我将方法更改为 GET,一切正常。
我尝试在 ajax 中更改数据类型,尝试将一些头文件添加到我发现在 stackoverflow 周围搜索的 php 文件中,但没有任何帮助...
【问题讨论】:
-
在 POST 上是否触发了
success回调?如果没有,请尝试设置error-callback 并检查它的内容。 -
发送纯文本?你希望它发送什么?
-
好吧,让它发送纯文本或不纯文本。
POST时返回什么,GET时返回什么? -
检查浏览器开发工具网络中的实际请求以获取线索。什么是状态? url 是否符合预期?...发送了什么?返回什么?等还修剪响应以防获得额外的空白
-
@Aneszej 您可以在网络选项卡中看到请求本身的所有内容...这样可以节省大量时间。您刚刚发布的所有信息都没有说明什么。仔细检查!
标签: javascript php jquery ajax post