AngularJS HTTP post - 使用key作为整个数据发送对象,值为空

时间:2016-04-16 17:56:42

标签: angularjs node.js http post

我尝试使用express将数据发送到我的NodeJS服务器。

问题在于,当我发布http帖子时,数据会被包装在一个对象中,其中数据是此对象中的键,并且值变为空。

http({
    method: 'POST',
    url: '/api/booking', 
    data: {test:"data"},
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
    }
    }).then(function successCallback(response) {
        console.log(response)
    }, function errorCallback(response) {
        console.log("API request failed: "+response);
    });

响应将是这样的;

{ '{"test":"data"}': '' }

我尝试了很多不同的解决方案,我已经搜索过了。但我无法确定问题所在。

我也尝试过使用邮递员,在这种情况下它运作得很好。

谢谢!

问题没有解决,但被绕过;

JSON.parse(Object.keys(req.body)[0]);

在服务器端。

3 个答案:

答案 0 :(得分:0)

您试试{'test':'data'}吗?

答案 1 :(得分:0)

您是否尝试对数据进行编码或字符串化?

window.encodeURIComponent( {test:"data"} )

JSON.stringify( {test:"data"} )

答案 2 :(得分:0)

你只需要将以下代码添加到服务器文件中,这将解析传入的json请求

app.use(bodyParser.json());