【问题标题】:AngularJS HTTP post - sending object with key as whole data, and value emptyAngularJS HTTP post - 发送带有键作为整个数据的对象,值为空
【发布时间】:2017-08-16 12:27:56
【问题描述】:

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

问题是当我发http post时,数据被包装在一个对象中,其中数据是这个对象中的键,值是空的。

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]);

在服务器端。

【问题讨论】:

    标签: angularjs node.js http post


    【解决方案1】:

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

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

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

    【讨论】:

    • 无效.. 不过非常感谢。我试图更改我正在使用的角度版本以防出现错误。但它并没有改变任何东西。
    【解决方案2】:

    你试过{'test':'data'}吗?

    【讨论】:

    • 您是否使用其他工具(如 postman)尝试过您的 API?结果是一样的吗?
    • 是的......而且当我用邮递员发送时,对象是正确的,这更令人不安。
    • 您是否在代码中输入了$http?或者只是 http 喜欢你的帖子?
    • 是的。我只是这样做: ['$scope','$http','$cookies', function(scope,http,cookies){
    • 我在这段小代码中看不到任何内容...我尝试在我这边重现您的语法,但一切正常。您可以在 plunker 上发布完整的示例吗?
    【解决方案3】:

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

    app.use(bodyParser.json());

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 2017-11-05
      • 1970-01-01
      • 2022-07-14
      • 2014-04-13
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      相关资源
      最近更新 更多