如何在角度传递体中发送休息 PUT 请求

Kuajia

我需要向网络服务器发送一个休息请求,我正在使用以下代码:

var getData = function(...) {
    return $http({
      method: "PUT",
      url: getStatistics,
      headers: {
        'loginId': ...,
        'token': ...,
        'Content-Type': 'application/x-www-form-urlencoded',
      },
      data: {"...":"...","...":"...","...":"...","...":"...",
             "...":"....","....":"...",
             "datefrom":"2017-01-01","dateto":"2017-10-20"}
    }).then(function(result){
        var dataString = JSON.stringify(result.data);
        alert(result.data);
        return result.data;
    });
};

问题是我收到错误 400 bad request,我该怎么办?

该请求适用于具有此结构的 Postman

https://i.stack.imgur.com/BBrwF.jpg

https://i.stack.imgur.com/NbQuO.jpg

应该是我如何传递数据对象的问题?

这就是我实现 $httpParamSerializerJQlike 的方式,它正确吗?

app.factory('statistics', function($http,$httpParamSerializerJQLike) {
var getData = function(loginId,token,id,dataInizio,dataFine,periodo,selezione) {
    // Angular $http() and then() both return promises themselves

    var data = '{"datefrom":"2017-01-01","dateto":"2017-10-20"}';

    alert(data);
    return $http({
      method: "PUT",
      url: getStatistics,
      headers: {
        'loginId': loginId,
        'token': token,
        'Content-Type': 'application/x-www-form-urlencoded',
      },
      data: { 'data': $httpParamSerializerJQLike(data)}
    }).then(function(result){
        var dataString = JSON.stringify(result.data);
        alert(result.data);
        return result.data;
    });
};

return { getData: getData };
});
JB尼泽

您正在发送一个 x-www-form-urlencoded 正文,但它包含一个名为 data 的单个参数,其中包含 JSON。

你因此需要

data: $httpParamSerializerJQLike({data: angular.toJson(data)})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章