关于angularjs中$http POST请求参数的问题
来源:互联网 发布:vba抓取网页数据 编辑:程序博客网 时间:2024/05/17 23:12
本人angularjs小白,今天遇到这样一个问题。在angularjs中发出这样一个POST请求
$http({ method: "POST", url: "", params: id }).success();
在调试中发现,参数在url上出现了,就是以?id=123124的形式出现,跟GET请求变成一样的了,然后查了一下发现参数的写法用GET的时候就是params,用POST/PUT/PATCH/DELETE就是data,修改后
$http({ method: "POST", url: "", data: id }).success();
发现发送的参数出现在了request payload里,后端会认为参数非法无法获取(前一种是序列化的参数a=bbb&c=ddd,后者是参数为一个对象)
于是查询了POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8,在html中form的Content-type默认值:Content-type:application/x-www-form-urlencoded。修改为
$http({ method: "POST", url: "", data: id, headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success();
然后确实就转成form data了,但是参数如果是对象还是不行
于是再查资料发现,如果参数是对象,还需要加上transformRequest
$http({ method: "POST", url: "", data: id, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, transformRequest: function(obj) { var str = []; for (var p in obj) { str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); } return str.join("&"); } }).success();
这样终于可以了,其实仔细看transformRequest,也就是把参数转成序列化的形式,所以以后如果使用的话,干脆就写成序列化的形式就好了,省的还要再转一道。jquery中有$.param()方法可以实现,angularjs里面不知道有没有。
文章来源:csdn
阅读全文
1 0
- 关于angularjs中$http POST请求参数的问题
- 关于angularjs中$http POST请求参数的问题
- 关于angularjs中$http POST请求参数的问题
- 关于http请求中get\post请求参数的限制
- 关于 HTTP GET/POST 请求参数长度最大值的问题
- 关于 HTTP GET/POST 请求参数长度最大值的问题
- 解决 AngularJs $http 发送post,get请求,SpringMvc无法接受参数的问题。
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- AngularJS中$http.post问题
- 关于winfrom程序http post请求多参数问题
- angularjs中$http POST中文参数乱码
- 解决AngularJS Http请求参数问题
- AngularJS $http模块POST请求
- 关于AngularJs中$http post、get 发送和接受参数详解
- 关于微信小程序POST请求中参数传递的方法
- angularjs使用post请求需要插入的参数
- angularjs $http 提交post问题
- angularJS的http请求
- javaScript解析Json
- Android Span应用
- 2017.11.3
- CSS2-7种选择器
- break和continue的区别以及增强for循环详解
- 关于angularjs中$http POST请求参数的问题
- 11,装饰模式-孙悟空的六神装
- Mysql 通过经纬度计算与其他多条经纬度的距离
- 团队合作网页开发问题记录-Material Design Lite框架试水
- linux安装jdk
- 快速开发基于ComXYZ控件的串口通信程序
- 欢迎使用CSDN-markdown编辑器
- 常用上传mime类型
- 自定义随机颜色的圆形小球view随手指移动