【问题标题】:Node js, put request with couchdb节点js,用couchdb提出请求
【发布时间】:2016-04-29 08:52:50
【问题描述】:

我正在尝试从JavaScript 发送PUT 请求。我无法将值从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,但我不确定如何获取从javascript 传递的message

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 值传递给它。没有responseTextbody 属性

【问题讨论】:

    标签: javascript json node.js xmlhttprequest put


    【解决方案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 块中。

    【讨论】:

    • 谢谢我已经编辑了我的代码,但是 req 变量没有传递给它的 javascript 值。没有 .body 或 .responseText 属性。我在 JavaScript 中做错了吗?
    猜你喜欢
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2017-12-24
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多