Jquery Ajax方法POST在远程服务器上不起作用

时间:2016-01-16 22:34:39

标签: javascript php jquery ajax post

我已经在网站上工作了很长时间,但这一切都是在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);
        }
      }
    });

的login.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中更改数据类型,尝试在php文件中添加一些标题,我已经找到了在stackoverflow中搜索,但没有任何帮助......

1 个答案:

答案 0 :(得分:1)

确保您在托管服务器上拥有相同版本的PHP(至少PHP 5.5,因为您使用的是password_verify(),用于&gt; = PHP 5.5)。