理解問題
理解問題理解問題
By default, the $http service will transform the outgoing request by serializing the data as JSON and then posting it with the content-type, "application/json". When we want to post the value as a FORM post, we need to change the serialization algorithm and post the data with the content-type, "application/x-www-form-urlencoded".作為用戶,您在使用$http 服務向伺服器發送資料時遇到了挑戰。具體來說,您在嘗試以 URL 編碼格式傳送資料時遇到了問題。
解決方案
要解決此問題,您需要將資料轉換為 URL參數而不是 JSON 字串。 Ben Nadel 在他的部落格中解釋了這一點:$http({ method: 'POST', url: url, 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("&"); }, data: {username: $scope.userName, password: $scope.password} }).then(function () {});
範例
這是一個範例,如何使用$http:$http({ method: 'POST', url: url, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, transformRequest: $httpParamSerializer });發布URL編碼的表單資料AngularJS v1.4和的更新稍後對於 AngularJS v1.4 及更高版本,您可以利用可用的新服務來實現相同的結果:
以上是如何使用 AngularJS 的 $http 服務發布 URL 編碼的表單資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!