如何使用GET发送正文请求

问题描述 投票:0回答:2

我正在使用angularjs,从我的服务中我必须使用路径参数(id),查询params(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;
           });
        };

到目前为止,我得到的是与未提供的响应主体相关联的错误请求错误。

这可能是一个noob问题,而不是最佳实践问题,但我应该为此找到解决方案。到目前为止,通过远距离搜索网络,我只能理解这是一种使用身体请求的非正统方式。

提前致谢!

javascript angularjs rest api get
2个回答
2
投票

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


1
投票

据我所知,该标准没有关于get类型请求的正文的陈述。因此这是一个经典的,取决于实施。无论如何,实现往往不支持这样的组合。而XMLHttpRequest就是其中之一:

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

© www.soinside.com 2019 - 2024. All rights reserved.