小编典典

$ .post抛出“非法调用”

ajax

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

我正在用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 {

                }
            });
        }
    }

阅读 401

收藏
2020-07-26

共1个答案

小编典典

在中else,您具有:

password2 = $('#pass_re_enter');
penname = $('#pen_enter');

然后您有:

{password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}

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

您需要添加.val()

password2 = $('#pass_re_enter').val();
penname = $('#pen_enter').val();
2020-07-26