我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题

I am getting an error: TypeError: e.changes is undefined while updating the user object using Parse API. How to resolve this?

本文关键字:错误 changes 未定义 对象 何解决 用户 问题 解决 一个 类型 API      更新时间:2023-09-26

下面是代码:

<!DOCTYPE html>  
  <html>
   <head>
    <title>Update Your Details</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.1.14.min.js"></script>
   </head>
<body>
    <table>
        <tr><td>Username:</td><td><input type="text" name="name" id="name" /></tr>
        <tr><td>Work:</td><td><input type="text" name="work" id="work" /></td></tr>
        <tr><td>Education:</td><td><input type="text" name="edu" id="education" /></tr>
        <tr><td>Password:</td><td><input type="password" name="password" id="password" /></td></tr>
    </table>
    <br />
    <button id="save">Done</button>
    <script type="text/javascript">   
            $(document).ready(function() {
                $('#save').click(function(e) {
                //  e.preventDefault();
                    console.log("before2 clicked!");
                    Parse.initialize("XXXX","XXXX");
                    console.log("before clicked!");
                    var profileSave = Parse.User.current();
                    var userName = document.getElementById('name').value;
                    var password = document.getElementById('password').value;
                    var work = document.getElementById('work').value;
                    var education = document.getElementById('education').value;
                    alert("userName = " + userName + "password = " + password + " work = " + work + " education " + education);
                    profileSave.setUsername("username", userName);
                    profileSave.setPassword("password", password);
                    profileSave.set("work", work);
                    profileSave.set("education", education);
                    profileSave.save(null, {
                        success: function(profileSave) {
                            profileSave.save();
                        },
                        error: function(profileSave, error) {
                            // Fail
                        }
                    });
                    alert("All the updates are being saved!");
                    window.open("welcome.html", '_self');
                });
            });
    </script>   
</body>
 </html>

我已经在谷歌和堆栈溢出和互联网上搜索过,但找不到我的问题的解决方案。在此代码中,基本上我想更新当前登录的用户对象的详细信息。但是在更新时,它会显示上面指定的错误。

为什么在成功块中第二次调用profileSave.save();?我相信这是导致问题的原因,因为当时没有进一步的变化。

您可以安全地从成功块中删除额外的save()调用,一切都应该没问题。

目前,您的代码显示"保存这些更改,如果有效,请尝试第二次保存,无需其他更改"。