$.post throwing "Illegal invocation "

ajax, javascript, jquery

Solution

In your `else`, you have:

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

Then you have:

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

You are getting `Illegal invocation` because jQuery is trying to serialize the jQuery object for `$.post`, and it can't. It's probably trying to call a string method, and is passing it a jQuery object as context, thus causing the error.

You need to add `.val()`.

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

Problem

Edit: None of the answers suggested so far have worked at all. I'm running this call with django. The first time it runs, the server returns "n_usr" (which changes the form the user files in). The second time, it just throws an `Illegal invocation` error. ``` 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 { } }); } } ```

Original source