2017-07-27 130 views
0

我一直有一個問題,整天通過ajax發送JSON數據到Express。 我的AJAX看起來是這樣的:意外令牌U Ajax語法錯誤

$('#saveClause').click(function() { 
    var username = document.getElementById('postUserName').innerHTML; 
    var clauseTitle = document.getElementById('modalTitle').innerHTML; 
    var clauseDescription = document.getElementById('modalDescription').innerHTML; 
    var clauseText = document.getElementById('modalText').innerHTML; 

    $.ajax({ 
     url: "/classes/updateAssignment", 
     type: "post", 
     dataType: "json", 
     data: { 
      username: username, 
      title: clauseTitle, 
      description: clauseDescription, 
      text: clauseText 
     }, 
     cache: false, 
     contentType: "application/json", 
     complete: function() { 
      console.log("complete"); 
     }, 
     success: function() { 
      console.log("success"); 
     }, 
     error: function() { 
      console.log("Process Error"); 
     } 

    }); 
}); 

和我的快遞類的路線是這樣的:

router.post('/updateAssignment', function (req, res) { 
    console.log(req.body.username) 
    console.log(req.body.title); 
    console.log(req.body.description); 
    console.log(req.body.text); 
    res.type('json'); 
    res.send({ 
     some: JSON.stringify({ 
      response: 'json' 
     }) 
    }); 


}); 

我發出了郵遞員POST請求的URL與此JSON對象:

{ 
    "username":"testing", 
    "title":"123", 
    "description":"j456", 
    "text":"seven" 
} 

和Express記錄了控制檯中的所有細節,所以它必須是我的ajax請求的問題,因爲它給了我一個意外的令牌u錯誤,但我不知道是什麼原因造成的它。有任何想法嗎?

+1

視圖是用快速呈現嗎?如果沒有,你必須指定完整的URL int he ajax字段(即:localhost:PORT/classes/updateAssignment /)並允許cors。另外,你可以複製粘貼你正在得到的確切的錯誤? – ThomasK

+0

Thew views are express with express, 這是我得到的確切錯誤: SyntaxError:意外的令牌ü 在解析(L:\ CSSE \ SPUR2017 \ authentication \ node_modules \ body-parser \ lib \ types \ json .js:83:15)等。 – MrShedford

+1

好的,這是一個節點錯誤。解析器無法解析你的身體。阿賈克斯看起來很好。你有沒有添加適當的json解析到你的中間件?在使用郵遞員時,你發送了什麼標題? – ThomasK

回答

2

嘗試刪除contentType: "application/json",

如果您使用的郵遞員,沒有頭,很可能這是導致解析器失敗。