在cordova開發(fā)的時候使用到了$http的post方法,傳遞的參數服務端怎么都接收不到,搜索了下,發(fā)現(xiàn)使用AngularJS通過POST傳遞參數還是需要設置一些東西才可以!
創(chuàng)新互聯(lián)2013年至今,先為石家莊等服務建站,石家莊等地企業(yè),進行企業(yè)商務咨詢服務。為石家莊企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
1、不能直接使用params
例如:
$http({
method: "POST",
url: "http://192.168.2.2:8080/setId",
params: {
cellphoneId: "b373fed6be325f7"}
}).success();當你這樣寫的時候它會把id寫到url后面:
http://192.168.2.2:8080/setId?cellphoneId=b373fed6be325f7"
會在url后面添加"?cellphoneId=b373fed6be325f7",查了些資料發(fā)現(xiàn)params這個參數是用在GET請求中的,而POST/PUT/PATCH就需要使用data來傳遞;
2、直接使用data
$http({
method: "POST",
url: "http://192.168.2.2:8080/setId",
data: {
cellphoneId: "b373fed6be325f7"
} }).success();這樣的話傳遞的,是存在于Request Payload中,后端無法獲取到參數

這時發(fā)現(xiàn)Content-Type:application/json;charset=UTF-8,而POST表單請求提交時,使用的Content-Type是application/x-www-form-urlencoded,所以需要把Content-Type修改下!
3、修改Content-Type
$http({
method: "POST",
url: "http://192.168.2.2:8080/setId",
data: {cellphoneId: "b373fed6be325f7"},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success();
這時數據是放到了Form Data中但是發(fā)現(xiàn)是以對象的形式存在,所以需要進行序列化!
4、對參數進行序列化
$http({
method: "POST",
url: "http://192.168.2.2:8080/setId",
data: {cellphoneId: "b373fed6be325f7"},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: function(obj) {
var str = [];
for (var s in obj) {
str.push(encodeURIComponent(s) + "=" + encodeURIComponent(obj[s]));
}
return str.join("&");
}
}).success(); 以上這篇AngularJS $http post 傳遞參數數據的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。
分享題目:AngularJS$httppost傳遞參數數據的方法
當前路徑:http://chinadenli.net/article38/jpcgsp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、面包屑導航、網頁設計公司、定制開發(fā)、網站維護、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)