国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

angular使用post、get向后臺傳參的問題實例

2024-05-06 15:16:39
字體:
來源:轉載
供稿:網友

一、問題的來源

我們都知道向后臺傳參可以使用get、put,其形式就類似于name=jyy&id=001。但是在ng中我卻發現使用$http post進行異步傳輸的過程中后臺是接收不到數據的。其實這個問題是因為請求頭的緣故。在ng中默認的請求頭是:“Content-Type":"application/json",也就是說傳遞參數是使用的就是json格式。但是后臺默認的卻是Content-Type': 'application/x-www-form-urlencoded'。因此在這樣的情況下后臺接收到的數據就會是空的。

那么為什么使用get形式就可以傳參呢?在書中我發現這樣的一句話:”這個鍵的值是一個字符串map或對象,會被轉換成查詢字符串追加在URL后面。如果值不是字符串,會被JSON序列化”,可以理解為在get中參數的傳遞是直接追加在url后面的,那么此時參數形式{"id":"1","name":"jyy"}會被轉化成id=1&name=jyy追加在url后面。那么在后臺中就可以直接獲取到了。例如:

var app = angular.module('app',[]);    app.controller('ctrl',function($scope,$q,$http){      var defer = $q.defer();      var promise = defer.promise;      $http({        method: "get",        params:{id:1,name:jyy},        url:"1.php"      }).success(function(data){        defer.resolve(data);      });      promise.then(function(data){        $scope.data = data;      })    })

在后臺(PHP)輸入echo $_GET[id]就可以正常顯示了。

那么接下來就研究怎么解決post的傳值了。

二、問題的解決

1. 修改請求頭

第一種方法就是在ng中修改請求頭將json格式改成x-www-form-urlencoded。修改方法點擊即可查看。

值得注意的是,在使用第二種方法時,可以修改put,get,post,common的傳參格式。因此修改哪種方式,就只能使用這種方式才能在后臺得到參數。這篇博文寫到使用common進行設置可以同時使用put、get、post進行傳參。但是在我的實際操作中發現對common進行修改并不能使用post進行傳參,而只有設置了post的請求頭才可以。

另外由于在ng中的參數都是使用json格式表達,因此需要引入jquery,使用其$.param("參數列表的json格式")進行序列化表示。

首先使用修改post請求頭。具體代碼如下:

var app = angular.module('app');      app.config(function($httpProvider){      $httpProvider.defaults.headers.post = { 'Content-Type': 'application/x-www-form-urlencoded' }    })    app.controller('ctrl',function($scope,$resource,$q,$http){      var defer = $q.defer();      var promise = defer.promise;      $http({        method: "post",        data:$.param({"id":"1","name":"jyy"}),        url:"1.php"      }).success(function(data){        defer.resolve(data);      });      promise.then(function(data){        $scope.data = data;      })    })

此時在后臺中(使用的是php),輸入echo $_POST[id],就會顯示。而debug其中顯示的請求頭正是我們設置的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 老河口市| 广平县| 松江区| 宁南县| 贞丰县| 孝感市| 龙江县| 奉化市| 石阡县| 苍山县| 苗栗市| 濉溪县| 连江县| 宜川县| 民乐县| 昭通市| 佛教| 循化| 沙河市| 化州市| 济源市| 易门县| 广宗县| 印江| 丰镇市| 新龙县| 顺义区| 资溪县| 正蓝旗| 仁化县| 双牌县| 磴口县| 天镇县| 南投市| 湖南省| 社旗县| 大姚县| 南部县| 连城县| 乳山市| 广昌县|