Ajax/PythonBottle/Jquery/JSON传递参数时出现问题

2024-10-02 20:40:33 发布

您现在位置:Python中文网/ 问答频道 /正文

当这个AJAX请求发布时,newUser()函数表示没有传递任何参数,即使我已经填写了userInput和passInput字段。JS/JQ/AJAX:

            var userInput = document.getElementById('registerUsername');
            var passInput = document.getElementById('registerPassword');
            var message = document.getElementById('checkUsernameMessage');

            $(document).ready(function() {
                $('#submitRegisterButton').click(function () {
                    $.ajax({
                        type: "POST",
                        url: "/newUser",
                        data: JSON.stringify({"username":userInput, "password":passInput}),
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        async: true,
                        cache: false, 
                        success: function (msg) {
                            $('#checkUsernameMessage').text(msg.d);
                        }
                    });
                });
            });

以及我的python瓶子函数newUser():

^{pr2}$

Tags: 函数json参数varjsajaxfunctionmsg
1条回答
网友
1楼 · 发布于 2024-10-02 20:40:33

您需要在dom ready调用中嵌套选择器。现在它们在DOM准备好之前运行,因此返回的是未定义的。您可以通过控制变量以查看它们是否返回任何数据来验证这一点。在

另一方面,您可能希望选择这些输入的值,而不是返回DOM元素本身:因此,请尝试一下

var userInput = document.getElementById('registerUsername').value

        $(document).ready(function() {


            $('#submitRegisterButton').click(function () {

                var userInput = document.getElementById('registerUsername').value;
                var passInput = document.getElementById('registerPassword').value;
                var message = document.getElementById('checkUsernameMessage').value;

                $.ajax({
                    type: "POST",
                    url: "/newUser",
                    data: JSON.stringify({"username":userInput, "password":passInput}),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: true,
                    cache: false, 
                    success: function (msg) {
                        $('#checkUsernameMessage').text(msg.d);
                    }
                });
            });
        });

这应该可以解决您的问题。在

在客户端问题修复后,python问题是:

post请求被调用为:def newUser( username, password ),其中不应该传入任何参数,而是派生自form变量:

^{pr2}$

相关问题 更多 >