2014-08-27 77 views
0

我在嘗試執行POST請求時認爲Ajax/Jquery出現控制檯錯誤。「Uncaught TypeError:非法調用」使用POST請求Ajax/NodeJs/MongoDB/Mongoose

這是錯誤: enter image description here

的和線createTeam.js 67 31:

$.ajax({ //line 67 

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

Ajax請求是函數sendInvitation內部。 我打電話sendInvitation另一個Ajax請求的成功部分內:

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: "[email protected]" 
       }, 
       success: function(msg) { 

       } 
      }); 
} 

我不知道我做錯了。有人知道嗎? 預先感謝您。

回答

1

我認爲問題出在您的contentType對象上。 jQuery可能不知道如何處理內容類型false。請不要設置您的contentType或將其設置爲正確的值,可能是application/jsonapplication/x-www-form-urlencoded

+0

是的,謝謝你試圖幫助我。我很欣賞這一點。 :) – debeka 2014-08-27 15:04:59

+0

如果我的答案是解決問題的方法,那麼您應該接受答案。 – 2014-08-27 15:06:49

+0

非常感謝。但是,我已經發現了它。 – debeka 2014-08-27 15:10:58

0

我剛找到解決方案。

我在這裏看到很多關於類似主題的問題。

顯然,Ajax請求不接受數據作爲OBJECT.But我沒有意識到我發送的是對象而不是字符串。所以在函數的調用中,我收到了teamName(html對象)中的一個對象,並且Post不起作用。

所以一旦我固定到一個字符串,郵政工作完美。

這對於有同樣問題的人可能非常有用。

檢查您是否嘗試發送對象而不是字符串或json。該請求不適用於對象。

contentType: false, 

ContentType不是實現這一點所必需的。

乾杯。 :)