2016-01-22 232 views
0

我想發送一個PUT請求從JavaScript。我無法將javascript的值發送到node js,它給我編輯:error is Unexpected token: o at Object.parse()。在這條線上var message = JSON.parse(req.responseText);也許我應該提到我正在使用bodyParser。節點js,請求與couchdb

 request.open("PUT", "myurl", true); 
     request.setRequestHeader('Content-Type', 'application/json'); 
     request.send(JSON.stringify({message: "from javascript"})); 

node js我想該數值發給couchDB但我不知道怎麼去從javascript

router.put('/fillMessage', function(req, res){ 
     var request = new XMLHttpRequest(); 
    //... 
    var message = req.body; 

    var newData = {_id: data._id, _rev: data._rev, message: "JS value goes here"}; 
    //... 

}); 

現在通過message值我調試節點JS req變量,似乎有沒有json值被傳遞進去。沒有responseTextbody屬性

回答

1

最常見的是Unexpected token: o at Object.parse()表示無論您試圖解析的是不是JSON編碼的字符串。它可能已經是一個對象,例如JSON.parse({ two : 2 })給出了同樣的錯誤。

JSON.parse試圖打開輸入一個字符串,然後解析它作爲JSON,所以在

var foo = { two : 2 }; 
JSON.parse(foo); // throws, equivalent to JSON.parse("[object Object]") 

JSON.parse工作這是一個好主意,檢查req.responseText是一個字符串第一和包裝在try/catch塊中的JSON.parse

+0

謝謝我編輯了我的代碼,但仍然,req變量沒有傳遞給它的javascript值。沒有.body或.responseText屬性。我在javaScript中做錯了什麼? –