"未捕获的TypeError:非法调用"使用POST请求Ajax / NodeJs / MongoDB / Mongoose

时间:2014-08-27 13:53:37

标签: javascript jquery ajax node.js mongodb

当我尝试执行一个认为Ajax / Jquery的POST请求时,我在控制台中收到错误。

这是错误: enter image description here

createTeam.js 67和31行是:

   $.ajax({   //line 67

   sendInvitation(teamID,_companyName,teamName) //line 31

ajax请求在函数sendInvitation中。 我在另一个ajax请求的成功部分中调用sendInvitation:

 success: function(msg) {
                    $.cookie("teamID",msg.teamID)
                    $.cookie("sessionID",sessionID)
                    var teamID = msg.teamID;
                    sendInvitation(teamID,_companyName,teamName);
                    alert("team supposedly saved")
                }

这是sendInvitation函数:

function sendInvitation(teamID, adminName,teamName){
        var emailList = [];
        $(".emails-ul").children("li").each(function(){
            emailList.push($(this).value);
        });
      $.ajax({
                type: "POST",
                url: "http://xxx.xxx.x.xx:9000/email/"+teamID,
                dataType:'json',
                contentType: false,
                data:{
                    teamName: teamName,
                    adminName:adminName, 
                    emails: "argomes@lakeheadu.ca"
                },
                success: function(msg) {

                }
          });
}

我不知道我做错了什么。有人知道吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我认为问题出在你的contentType对象上。 jQuery可能不知道如何处理内容类型false。您可以设置contentType或将其设置为正确的值,可能是application/jsonapplication/x-www-form-urlencoded

答案 1 :(得分:0)

我刚刚找到了解决方案。

我在这里看到很多关于类似主题的问题。

显然,Ajax请求不接受数据为OBJECT.But我没有意识到我发送的是一个对象而不是一个字符串。所以在调用函数时我收到了teamName(html对象)中的一个对象,并且Post无效。

因此,一旦我将其修复为字符串,Post就完美无缺。

这对有相同问题的人非常有用。

检查您是否尝试发送对象而不是字符串或json。该请求不适用于对象。

contentType: false,

ContentType不是实现此目的所必需的。

干杯。 :)