1、AJAX Post请求中常用的两种传参数的形式:
form data 和 request payload
2、get请求的时候,我们的参数直接反映在url里面,形式为key1=value1&key2=value2形式,比如:
http://news.baidu.com/ns?word=NBA&tn=news&from=news&cl=2&rn=20&ct=1
3、若post请求;
那么表单参数是在请求体中,也是以key1=value1&key2=value2的
形式在请求体中。通过chrome的开发者工具可以看到
4、注意post请求一般默认Content-Type:
application/x-www-form-urlencoded,参数是在请求体中,即请
求中的Form Data。
细节注明:前端代码:提交数据(搬运他人-感谢)
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("name=foo&value=bar")
后端代码:接收提交的数。在servlet中,可以通过request.getParameter(name)的形式来获取表单参数。
/**
* 获取httpRequest的参数
*
* @param request
* @param name
* @return
*/
protected String getParameterValue(HttpServletRequest request, String name) {
return StringUtils.trimToEmpty(request.getParameter(name));
5、在36kr中请求的Content-Type是
application/json;charset=UTF-8,而请求表单的参数
在Request Payload中
二者区别(借鉴别人-感谢):
①如果一个请求的Content-Type设置
为application/x-www-form-urlencoded,那么这个Post请求
会被认为是Http Post表单请求,那么请求主体将以一个
标准的键值对和&的querystring形式出现。这种方式
是HTML表单的默认设置,所以在过去这种方式更加常见。
②其他形式的POST请求,是放到 Request payload 中
(现在是为了方便阅读,使用了Json这样的数据格式),请
求的Content-Type设置为application/json;charset=UTF-8或者
不指定