2016-01-22 131 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中做错了什么? –