2012-07-30 14 views
16

編集:これまでに提案された回答はまったく機能しませんでした。

私はこの呼び出しをdjangoで実行しています。最初に実行されると、サーバーは "n_usr"(ユーザーファイルの形式を変更します)を返します。 2回目は、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 { 

       } 
      }); 
     } 
    } 
+0

「不正な呼び出し」は、間違ったコンテキストで関数を呼び出すことを意味します。 –

+0

@Rocketコンテキストではどういう意味ですか? –

+0

'console.log.call(document、 'test')'を呼び出すのと同じです。これは 'document.'の文脈で' console.log'を呼び出しています。または 'setTimeout(someFunc)'。 –

答えて

19

、あなたが持っている:

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

次に、あなたが持っている:

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

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

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

password2 = $('#pass_re_enter').val(); 
penname = $('#pen_enter').val(); 
+0

私はまた何を提案するつもりだった。 –

+0

私はあなたを愛しています。私も同様のエラーがあり、何らかの理由で ".val()"というパラメータを追加するのを忘れてしまったので、私は最も奇妙なエラーを出していました。 1時間後、私はそれを正しく作った!私はいつもほとんどのエラーをしない。それは多くの注目を集める。 Tjìhankyou;) – G4bri3l

+0

@ G4bri3l:大歓迎です! :-D –

0

さて、あなたが同じそれらを呼び出していません - 最初の時間を:

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

と第二

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

変更url_baseを含むように第二1。あなたのelse

+0

これは私にとって正しいと思う。 +1 – Ohgodwhy

+0

これはどのように「不正な呼び出し」エラーを引き起こすでしょうか? –

+0

url_baseは、私がプログラムから削除したと思われる空の文字列です。 2番目の呼び出しに追加しても何も変更されません。しかし、ありがとう。 –

関連する問題