irpas技术客

axios使用get方法传在body中传递参数_Kunz-_axios body传参

网络投稿 6917

1、GET 是一定支持 传递 Body 的。

如果在很多年前,我也认为GET传递Body不合理,但是随着rustful的流行,你会发现,GET传递Body不仅合理,而且还非常必要。以我们公司目前的项目来说,有如下预定,数据交换统一使用JSON,原因在于,JSON格式的数据要更加清晰易懂,各个前后端语言都可以支持,更主要的一点是JSON解析后,是支持数据类型的。

举一个实际的例子,订单前置校验接口,这个接口是要下单前进行校验的,一次性告诉你,这个订单能不能下单(是否上架,是否可售,该区域是否可售,库存是否充足,该区域仓库库存是否充足……),看似简单的接口,实际上要做的校验非常多,调用该接口需要的参数也非常多,这些参数放到Body中尚可,放在url query中,简直没法看

在举一个更容易理解的例子

获取一张图片的sha1值,根据rustful的设计原理,很明显这应该是一个GET(获取)请求,但是很明显的时候,调用这个接口需要将图片传递过来,所以必然要用Body将图片传递过来。使用url传图片,是不是有些疯狂了。

让后端把GET改成POST,对于后端来说就是修改几个单词的事儿

如果在前几年,大家对rustful还不是很熟悉,或者用的人不多,接受度不高的时候,把GET改成POST貌似确实是一个相对合理的方案。

貌似很多年前,也有人说div+css布局不如table好用,然后div搞不定的就用table搞,现在呢?就算是做表格,也基本没人用table做了吧。

貌似很多年前,也有人说mvvm不好用,vue不好用,不如jquery,结果呢,几年前,开始流行去jquery化,相比大家印象深刻吧,不然恐怕大家用的还是jquery的ajax吧,还不是axios吧。

axios不支持get传递body,至少在我是用的时候是这个样子。或许它以后会支持,或许它永远不会支持

1、可以尝试自己修改axios源码

2、放弃axios,选择支持的组建。

其实现在h5的支持越来越全了,原生支持fetch API可以试一试

直接提供可用代码(采用xhr API)

作者:撰天 链接:https://·/question/340280210/answer/952097635 <script type="text/javascript"> var data = JSON.stringify({ "testField1": "hihi", "testField2": 123456 }); var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === 4) { console.log(this.responseText); } }); xhr.open("GET", "http://127.0.0.1:1323/intranet/test"); xhr.withCredentials = false; xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Accept", "*/*"); xhr.setRequestHeader("Cache-Control", "no-cache"); xhr.setRequestHeader("Postman-Token", "7c8c5c5f-effc-4cbb-a5c9-6e3f72c554a6,2bc402e6-9654-4f13-9e7e-33550bed91bc"); xhr.setRequestHeader("cache-control", "no-cache"); xhr.send(data); </script>

注意!!!

xhr.withCredentials = false;

下面是golang接收并返回body代码

func (obj Notify) Test(c echo.Context) (err error) { params := new(testData) if err = c.Bind(params); err != nil { return c.JSON(http.StatusOK, tools.Code{}.ParamUnknowErr()) } return c.JSON(http.StatusOK, tools.Code{}.SuccessWithData(params)) }


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Axios #body传参 #1get #是一定支持 #传递 #body #