javascript - Ajax 正确发布表单但不返回成功数据

标签 javascript php jquery ajax

我有这段代码使用ajax提交表单数据。让我们看一下这里:

$(document).ready(function(){

    $('input.friend-request').click(function() {
        addFriend();
    });
});

function addFriend() {
    var val = 'test';
        $.ajax({
            type: "POST",
            url : "server.php",
            data : $("#addFriend").serialize(),
            //console.log(data);
            success : function(data) {
                console.log(data);
                if (data==1) {
                    //$('input.friend-request').hide();
                    $("#addFriendSuccess").html('friend request sent').fadeIn(1000);
                    $("#addFriendSuccess").fadeOut(5000);
                } else {
                    alert('something is wrong');
                }
            }
        },"json");
 }

这是处理表单数据插入数据库的 server.php 文件代码。

include 'db.php';

$session = $_POST['session'];
$friend = $_POST['friend'];
if ($session = $_POST['session'] && $friend = $_POST['friend']) {
    $newSql = "INSERT INTO friend_request(user_id,friend_id) VALUES ('$session', '$friend')";
    $addQuery = mysqli_query($db, $newSql);
    echo '1';
}

在此阶段,一切正常,数据已正确插入数据库。如果数据成功,则会在此处返回 echo '1':

if (data==1) {
    $("#addFriendSuccess").html('friend request sent').fadeIn(1000);
    $("#addFriendSuccess").fadeOut(5000);
}

我想在正确的 div(addFriendSuccess) 中向用户显示一条消息,并且该 div 包含在正文中。但它不起作用并且不会向用户显示任何消息。即使 console.log(data) 也不会记录任何内容。这里可能发生什么错误?

最佳答案

这个怎么样:

function AddFriend() {
     return $.ajax({
        type: "POST",
        url : "server.php",
        data : $("#addFriend").serialize(),
     });
}

function AddFriendError(x, y, z) {
    alert(x + '\n' + y + '\n' + z);
}

function AddFriendResult(jqXHR, textStatus)
{
    var data = JSON.parse(jqXHR);//I changed this, you can also try this again below..

    if (data === "1") { //or data === "1"
        $("#addFriendSuccess").html('friend request sent').fadeIn(1000);
        $("#addFriendSuccess").fadeOut(5000);
    }
}

$.when(AddFriend()).then(AddFriendResult, AddFriendError);

关于javascript - Ajax 正确发布表单但不返回成功数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29437770/

相关文章:

javascript - 单击时替换元素,并在其他位置单击时将其返回

javascript - 隐藏源 CSS 代码

php - 如何查找和替换 MySQL 文本字段中的整个单词?

php - flock 有可能用 LOCK_EX 返回 false 吗?

php - 使用php和form更新mysql数据

jquery - 正则表达式用于精确匹配多个

javascript - Window.Location 在 IE 中不起作用?

javascript - Google Apps脚本的邮件服务应用程序中的动态邮件ID

javascript - 使所有 <div> 包装器具有相同的高度,除非单击 'read more'

javascript - IE7 使用 jQuery 隐藏/删除/显示内容的问题