servlet后台接收不到前端发来的post数据

发布于 2022-09-04 16:09:49 字数 624 浏览 9 评论 0

我后台用servlet编写了api,然后我用postman之类的工具模拟post请求测试过,后台工作都是正常的,能够接收到请求。之后前端页面一开始是用vue-resource编写的,后来用了axios,后台用getParameter()都接收不到任何数据,但能够通过getReader()的方式得到我发送的post信息{"name": "Fred"}这种样子的。请问这是为什么。


我vue-resource axios的代码都是按照官网最简单的例子来写的,不带别的任何设置,比如下面的

this.$http.post('/api/goods', {
                    name: 'Fred',
                 })
                  .then(function (response) {
                    console.log(response);
                 })
                  .catch(function (error) {
                    console.log(error);
                 });

请问这是为什么额,我都要蛋疼死了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧话新听 2022-09-11 16:09:49

好吧问题已经解决了,是因为vue-resource axios按照文档的写法是发送json过去,而不是类似表单的那种提交,所以后台不能接受到。vue-resource我不知道怎么解决,不过axios我已经找到解决办法了,文档里面有

var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params); 

这样子使用就OK啦

蘸点软妹酱 2022-09-11 16:09:49

楼主你遇到的问题在于POST提交中请求参数可以有两种不同形式:form data和request payload,相关资料参阅:http://blog.csdn.net/mhmyqn/a...

如何判断是这样的提交?在Chrome的开发者工具面板看request中有没有payload。
如何解析这样的提交?用ServletRequest.getReader()方法获得访问payload的reader。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文