我正在尝试从PUT
发送JavaScript
请求。我无法将javascript
的值发送到node js
,它正在给我编辑:error is Unexpected token: o at Object.parse()
。在这一行var message = JSON.parse(req.responseText);
也许我应该提到我正在使用bodyParser。
request.open("PUT", "myurl", true);
request.setRequestHeader('Content-Type', 'application/json');
request.send(JSON.stringify({message: "from javascript"}));
来自node js
我想将该值发送给couchDB
,但我不确定如何从message
传递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"};
//...
});
现在我正在调试节点js req
变量,似乎没有传递给它的json值。没有responseText
或body
属性
答案 0 :(得分: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
是否为字符串,然后将JSON.parse
包装在try / catch块中。