19

編集:これまでに提案された答えはどれもまったく機能していません。

この呼び出しをdjangoで実行しています。初めて実行すると、サーバーは「n_usr」(ユーザーファイルの形式を変更します)を返します。Illegal invocation2回目は、エラーをスローするだけです。

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 {

                }
            });
        }
    }
4

2 に答える 2

21

あなたのelse中に、あなたは持っています:

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

次に、次のようになります。

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

jQueryがIllegal invocationのjQueryオブジェクトをシリアル化しようとしているのに$.post、それができないためです。おそらく文字列メソッドを呼び出そうとしていて、コンテキストとしてjQueryオブジェクトを渡そうとしているため、エラーが発生します。

を追加する必要があります.val()

password2 = $('#pass_re_enter').val();
penname = $('#pen_enter').val();
于 2012-07-31T13:36:45.573 に答える
0

さて、あなたはそれらを同じとは呼んでいません-初めて:

 $.post(url_base+'/ajax/login' ...

と2番目

  $.post('/ajax/login', {....

2番目のものを変更してurl_baseを含めます。

于 2012-07-30T21:02:30.400 に答える