后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法
1.問題:
后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù),總是顯示為null
示例代碼:
$http.post(/admin/KeyValue/GetListByPage,
{
pageindex: 1,
pagesize: 8
})
.success(function(){
alert("Mr靖");
});
代碼沒有錯,但是在后臺卻接收不到數(shù)據(jù),這是為什么呢?
用火狐監(jiān)控:參數(shù)是JSON格式

用谷歌監(jiān)控:傳參方式是request payload

可以發(fā)現(xiàn)傳參方式是request payload,參數(shù)格式是json,而并非用的是form傳參,所以在后臺用接收form數(shù)據(jù)的方式接收參數(shù)就接收不到了
POST表單請求提交時,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST請求如果不指
定請求頭RequestHeader,默認使用的Content-Type是text/plain;charset=UTF-8,而此處的Content-Type是:

--------------------------------------------------------------------------------
2.解決方法:
直接上代碼:
//要通過post傳遞的參數(shù)
var data = {
pageindex: 1,
pagesize: 8,
},
//post請求的地址
url = "/admin/KeyValue/GetListByPage",
//將參數(shù)傳遞的方式改成form
postCfg = {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: function (data) {
return $.param(data);
}
};
//發(fā)送post請求,獲取數(shù)據(jù)
$http.post(url, data, postCfg)
.success(function (response) {
alert("Mr靖");
});
接下來再看監(jiān)視工具:
火狐監(jiān)視:參數(shù)類型已經(jīng)變成表單數(shù)據(jù)

谷歌監(jiān)視:

現(xiàn)在傳參方式就變成form方式了,然后后端就可以正常接收參數(shù)了!
以上所述是小編給大家介紹的后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- 解決angular的$http.post()提交數(shù)據(jù)時后臺接收不到參數(shù)值問題的方法
- 對比分析AngularJS中的$http.post與jQuery.post的區(qū)別
- Angularjs中$http以post請求通過消息體傳遞參數(shù)的實現(xiàn)方法
- AngularJS下$http服務Post方法傳遞json參數(shù)的實例
- AngularJS $http模塊POST請求實現(xiàn)
- AngularJS $http post 傳遞參數(shù)數(shù)據(jù)的方法
- angularJS 發(fā)起$http.post和$http.get請求的實現(xiàn)方法
- AngularJS封裝$http.post()實例詳解
- 深入理解Angularjs中$http.post與$.post
- Angular利用HTTP POST下載流文件的步驟記錄
相關文章
基于AngularJS實現(xiàn)頁面滾動到底自動加載數(shù)據(jù)的功能
本文主要給大家介紹基于AngularJS實現(xiàn)頁面滾動到底自動加載數(shù)據(jù)的功能,通過第三方控件來實現(xiàn),感興趣的朋友跟著小編一起看看具體實現(xiàn)代碼吧2015-10-10

