编辑:到目前为止,所有建议的答案都没有奏效。
我正在用Django运行此呼叫。服务器第一次运行时,将返回“ n_usr”(这将更改用户文件的形式)。第二次,它只是抛出一个Illegal invocation错误。
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 { } }); } }
在中else,您具有:
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对象,从而导致错误。
$.post
您需要添加.val()。
.val()
password2 = $('#pass_re_enter').val(); penname = $('#pen_enter').val();