后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
程序员文章站
2022-06-24 16:49:48
1.问题:
后端接收不到angularjs中$http.post发送的数据,总是显示为null
示例代码:
$http.post(/admin/k...
1.问题:
后端接收不到angularjs中$http.post发送的数据,总是显示为null
示例代码:
$http.post(/admin/keyvalue/getlistbypage, { pageindex: 1, pagesize: 8 }) .success(function(){ alert("mr靖"); });
代码没有错,但是在后台却接收不到数据,这是为什么呢?
用火狐监控:参数是json格式
用谷歌监控:传参方式是request payload
可以发现传参方式是request payload,参数格式是json,而并非用的是form传参,所以在后台用接收form数据的方式接收参数就接收不到了
post表单请求提交时,使用的content-type是application/x-www-form-urlencoded,而使用原生ajax的post请求如果不指
定请求头requestheader,默认使用的content-type是text/plain;charset=utf-8,而此处的content-type是:
--------------------------------------------------------------------------------
2.解决方法:
直接上代码:
//要通过post传递的参数 var data = { pageindex: 1, pagesize: 8, }, //post请求的地址 url = "/admin/keyvalue/getlistbypage", //将参数传递的方式改成form postcfg = { headers: { 'content-type': 'application/x-www-form-urlencoded' }, transformrequest: function (data) { return $.param(data); } }; //发送post请求,获取数据 $http.post(url, data, postcfg) .success(function (response) { alert("mr靖"); });
接下来再看监视工具:
火狐监视:参数类型已经变成表单数据
谷歌监视:
现在传参方式就变成form方式了,然后后端就可以正常接收参数了!
以上所述是小编给大家介绍的后端接收不到angularjs中$http.post发送的数据原因分析及解决办法的相关知识,希望对大家有所帮助