post参数放url后面与放body中的区别,为什么我将参数放在body里面,服务器端跟我说
再详细一点,后台给了一个接口,是post请求,但是请求是通过URL拼接成的,就跟get
请求一样,所有的参数、数据都在URL里面,那么参数放url后面和放body里面有什么
区别?
估计是你没有设置content-type=application/x-www-from-urlencoded
HTTP协议中有2种向服务器提交数据的方法,一种是get,另一种是post的, 其中get方式要提交的变量在URL中,post方式通过表单提交过去,其实本质上没有特别大的区别,在做安全人的眼里一样的。只不过get提交的变量在URL体现会感觉不够安全,其实通过抓包post的数据也是可以轻松搞定。服务器给你的响应状态码是什么?通过状态码诊断服务器的问题和网络情况。
post是将数据放到body里,有key和值,对应就可以了,url后面不加东西
有人告诉我:
放在url上其实就是相当于head里面,head和body对参数的自己大小限制是不一样的,http协议本身是没有做限制的,但是传输包是有大小限制的,正常body里面应该是没有限制,因为有些传个几G的文件都没啥问题
那么有有哪些原因会造成我把参数放body中,服务端会获取不到
先看一个例子:
一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0".
复制代码 代码如下:
那么把这个js脚本放head里面还是body里面呢?
答案是不仅要放到body里面,而且还得放到定义id='vSort0'的列表框后面,因为这个js脚本中有document.form4.vSort0.selectedIndex,如果放到head里或者body的id='vSort0'前,页面加载后顺序执行代码,执行到这个js发现vSort0未定义(即undefind),这个js也就失去了作用。
而为什么我们经常看到有很多的人把js脚本放到head里面没事呢?对!
就是因为你看到的在head里的js代码有onclick等事件传递了变量给函数。
post参数拼接到url里面,参数不同相当于是两个接口啊。post就是将参数放在一个对象里,get就是没有这个参数啊
区别不知道,只是参数内容大小有限制,比如保存操作,参数比较多的情况,你总不能全部拼接到url
看你的获取方式,如果是post。获取就不能用Request.QueryString
HTTP协议中有2种向服务器提交数据的方法,一种是get,另一种是post的, 其中get方式要提交的变量在URL中,post方式通过表单提交过去,其实本质上没有特别大的区别,在做安全人的眼里一样的。只不过get提交的变量在URL体现会感觉不够安全,其实通过抓包post的数据也是可以轻松搞定。服务器给你的响应状态码是什么?通过状态码诊断服务器的问题和网络情况。
放在url后面拼接相当于加了一个params,放在body里面有key value对应传递参数
后面拼接相当于加了一个params,放在body里面有key value对应传递参数
你是怎么试的,用postman吗?还是在代码里写的,代码贴一下呗
request.getParampers();
你在前端提交接口请求的时候,追踪一下提交的数据,console.log打印一下,如果数据正确就是后台的问题,如果不是你看看是不是空
因为post提交相当于一个表单,关键是看数据是否正确提交了
放在url后面是拼接成完整的url,放在body里面是因为传入参数需要这个key
首先,POST请求如果用url传递参数,那么为啥不直接使用GET,用POST干嘛
其次,在Java里,前端如果把数据封装到Body里在POST接口传递,相应的,后端也必须把参数设置为Body类型,最直接就是注解@RequestBody