如何使用GET发送正文请求

时间:2018-09-17 10:50:28

标签: javascript angularjs rest api get

我正在使用angularjs,根据服务,我必须使用路径参数(id),查询参数(var1和var2)和正文请求( {“ codes”:[“ 1000”]})-必须在get方法中作为字符串数组发送(我知道,发送正文请求应在POST中完成)。

到目前为止,我的服务有:

        function getSub(id, var1, var2) {
           var payload = {
               first: var1,
               second: var2
           };

           var url = 'sub/' + id + '/mylink'
           return api.get(url, payload, {"codes": ["1000"]}).then(function (response) {
               console.log("READ RESPONSE ", response);
               return response;
           });
        };

到目前为止,我得到的只是一个错误的请求错误,该错误链接到未提供的响应正文。

这可能是一个菜鸟问题,而不是最佳实践,但我急需找到解决方案。到目前为止,通过远距离搜索网络,我只能理解这是使用正文请求的一种非常规方法。

谢谢!

2 个答案:

答案 0 :(得分:2)

是的,您可以使用GET发送请求正文,但这没有任何意义。您可以在服务器上解析它并根据其内容修改响应,而在HTTP / 1.1 specification, section 4.3:

中则忽略了此建议

答案 1 :(得分:1)

据我所知,该标准没有关于get类型请求的主体的声明。因此,这是经典的,它取决于实现方式。无论如何,实现往往不支持这种组合。 XMLHttpRequest是其中之一:

  

send()接受一个可选参数,该参数可让您指定请求的正文;这主要用于PUT之类的请求。如果请求方法是GET或HEAD,则将忽略body参数,并将请求正文设置为null。