angularjs发送post请求,servlet无法用getParameter(name)获取的解决方法,亲测有效
来源:互联网 发布:数据时代的利与弊作文 编辑:程序博客网 时间:2024/05/18 18:18
初始请求如下所示,servlet无法获取参数值
$http({
method : "POST",url : url,
data:data
}).success(function(data, status, headers, config) {
//....
})
当post请求的Content-Type为application/x-www-form-urlencoded,参数是在请求体中,即Form Data中.
这时tomcat依据Content-Type值认为数据格式是key-value,在获取请求参数后会对参数做特殊处理,放到request对象的parameterMap中,
servlet用getParameter(name)就可以从map中获取相应参数的值.
那么发送post请求时,content-type默认是text/plain,参数在RequestPayload中,此时数据格式是不确定的,tomcat就
不会对参数做特殊处理,servlet就无法从map中获取参数的值.
一.在后端让servlet用getParameter(name)读取参数可以在前端做修改实现
1.在$http中设置Content-Type为application/x-www-form-urlencoed,并用$.param(data)处理要传输的参数,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data : $.param(data),
如果用$http.post发送,可以在postCfg中设置headers,transformRequest实现相同的效果
二.如果前端不方便改动,也可以修改后端代码获取到需要的参数:当无法读取ParameterMap获取参数时,可以直接读取request中的输入流,自己手动解析参数:
private String getRequestPayload(HttpServletRequest request){
StringBuilder builder = new StringBuilder();
try{
BufferedReader reader = request.getReader();
char[] buff = new char[1024];
int len = 0;
while((len=reader.read(buff))!= -1){
builder.append(buff,0,len);
}
}catch(Exception e){
//.....
}
return builder.toString();
}
0 0
- angularjs发送post请求,servlet无法用getParameter(name)获取的解决方法,亲测有效
- OS开发之AFNetworking-解决Servlet用request.getParameter("")无法获取到post参数的问题
- AngularJs的$http发送POST请求,php无法接收Post的数据解决方案
- 解决 AngularJs $http 发送post,get请求,SpringMvc无法接受参数的问题。
- $.ajax()post方式请求参数无法传递,request.getParameter()无法获取
- servlet获取并解析post请求发送过来的xml字符串
- 在Servlet中使用getParameter()方法获取get请求中的中文参数乱码解决方法
- AngularJS 发送POST请求到后台
- AngularJS发送异步Get/Post请求
- servlet判断发送来的是什么请求,get?post?
- Servlet 的post 请求
- java 发送http协议的POST请求获取数据
- php无法获取angularjs post数据
- Java用org.apache.http.client的HttpClient发送Post请求 可获取返回Header
- Java用org.apache.http.client的HttpClient发送Post请求 可获取返回Header
- Java用org.apache.http.client的HttpClient发送Post请求 可获取返回Header
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- 微信小程序post请求服务器端无法获取的解答
- 归并排序
- StarUML pioji
- Unit12 作业练习
- Android自定义View——自定义搜索框(SearchView) 非常实用的控件
- Android中Preference的使用以及监听事件分析
- angularjs发送post请求,servlet无法用getParameter(name)获取的解决方法,亲测有效
- 1、网络爬虫之规则之requests库入门
- Palindrome Number
- git 撤消远程仓库提交
- 线段树,点更新查找
- C++ 指针类型
- 适配器模式
- python PIL 图像处理 (二)
- 热修复之--错误