javascript - 在 Ajax 中测试 PHP 响应

标签 javascript php jquery ajax

我正在制作一个简单的注册机制,将用户名和密码存储到 MySQL 数据库中。它是如何工作的:

  1. 用户在文本框中输入数据。
  2. 通过 JQuery 脚本获取值并进行验证。
  3. 如果验证通过,则会对 PHP 文件进行 Ajax 调用,然后检查用户名是否已被使用。如果它被占用,它会回显“0”。如果没有,它会回显“1”并将值插入数据库。
  4. 然后 Jquery 检查响应并执行适当的操作。

    $.ajax({
        type: "POST",
        url: "register.php",
        data: {usn:us, pwd: pw},
        cache: false,
        success: function(result){
            console.log(result);
            if (result=='1'){
                window.location = "next.php";
            }else{
                errorMessage= "Username taken. <br>";
                $("#regerrormsg").html(errorMessage);
            }
        }
        });
    

PHP:

include 'dbconnect.php';
    $us = $_POST["usn"];
    $pw = $_POST["pwd"];

    $tryus = $conn->query("SELECT Username from users WHERE Username='" . $us . "'");
    if ($tryus->num_rows == 0){
        echo '1';
        $conn->query("INSERT INTO users (ID, Username, Password) VALUES (DEFAULT, '" . $us . "', '" . $pw . "')");  
        session_start();
        $_SESSION["user"] = $us;
    }else{
        echo '0';
    }

现在,奇怪的事情来了。除了一部分之外,这几乎是有效的。该查询确实检查用户名是否已存在,并且确实回显适当的值(“0”或“1”)。我已经通过将输出记录在 javascript 文件中对此进行了测试。我还检查了我的数据库,它从不存储重复的用户。但是,由于某些奇怪的原因, window.location = "next.php";即使输出值为“1”,也永远不会执行。它总是转到“else” block 。 知道为什么会发生这种情况吗? 谢谢。

最佳答案

检查后端响应的最佳方法是使用 REST Api 客户端。 Postman最受欢迎但我更喜欢 Insomnia 。尝试一下,我认为这是前端开发的必备。

关于javascript - 在 Ajax 中测试 PHP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47072389/

相关文章:

javascript - 无法读取未定义的kineticjs的属性 'rotation'

php - 半自动向不安全的 PHP mysql 脚本添加安全性

php - 在PHP中循环遍历大数据数组

php - 当我从 php 和 javascript 表单中获取值时,确认框不起作用

jquery - 显示 'loading' 直到所有图像均已加载且 jquery Masonry 触发

javascript - 单击按钮时阻止 Javascript 事件

asp.net - jQuery/Javascript - 如何检测图像是否已重新加载

javascript - 使用智能手机打开 GPS 导航应用程序的网站按钮

javascript - 无法在 DIV 上使用 JavaScript 执行 CSS 代码

按键的 JavaScript 语法