$ .post抛出"非法调用"

sin*_*inθ 18 javascript ajax jquery

编辑:到目前为止建议的答案都没有奏效.

我正在用django运行这个电话.第一次运行时,服务器返回"n_usr"(更改用户文件的格式).第二次,它只是抛出一个Illegal invocation错误.

function log_in () {

        username = $('#usr_enter').val();
        password = $('#pass_enter').val();
        if(!n_usr){
            $.post('/ajax/login',{password: password, username: username}, function(data) {
              if(data == "n_usr"){
                $('#new_user_entry').show('slow');
                n_usr = true;
              }
              else {

              }

            })
    }else {
        password2 = $('#pass_re_enter');
        penname = $('#pen_enter');
            $.post('/ajax/login', {password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}, function(data) {
                if(data == "e_act"){

                } else {

                }
            });
        }
    }
Run Code Online (Sandbox Code Playgroud)

Roc*_*mat 21

在你的else,你有:

password2 = $('#pass_re_enter');
penname = $('#pen_enter');
Run Code Online (Sandbox Code Playgroud)

然后你有:

{password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}
Run Code Online (Sandbox Code Playgroud)

你得到的Illegal invocation是因为jQuery正在尝试序列化jQuery对象$.post,但它不能.它可能试图调用一个字符串方法,并将它作为上下文传递给jQuery对象,从而导致错误.

你需要添加.val().

password2 = $('#pass_re_enter').val();
penname = $('#pen_enter').val();
Run Code Online (Sandbox Code Playgroud)