$ .post投掷“非法调用”
编辑:迄今为止建议的答案都没有奏效。
我正在用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 { } }); } }
在你的else
,你有:
password2 = $('#pass_re_enter'); penname = $('#pen_enter');
然后你有:
{password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}
您正在进行Illegal invocation
因为jQuery正在尝试为$.post
序列化jQuery对象,但它不能。 它可能试图调用一个字符串方法,并将它作为上下文传递给jQuery对象,从而导致错误。
您需要添加.val()
。
password2 = $('#pass_re_enter').val(); penname = $('#pen_enter').val();
嗯,你不是一样的 – 第一次:
$.post(url_base+'/ajax/login' ...
和第二个
$.post('/ajax/login', {....
将第二个更改为包含url_base。