使用AngularJS 的$http 服務進行AJAX 呼叫時,在發送需要的表單資料時可能會遇到挑戰URL 編碼。對於那些尋求無 jQuery 解決方案的人來說,這尤其令人沮喪。
嘗試使用Angular 的$http 服務透過以下方法傳送表單資料會導致失敗:
解決方案
data: {username: $scope.userName, password: $scope.password}
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}, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }成功POST URL 編碼表單數據,需要將資料物件轉換為URL參數。根據 Ben Nadel 的說法,Angular 預設將傳出資料序列化為 JSON,並以「application/json」內容類型發布。 要更改此行為並發布表單數據,請更新程式碼如下:此程式碼將JavaScript 物件轉換為URL 編碼的字串,允許成功POST 表單數據而無需jQuery。 Angular 1.4 的增強解決方案對於 AngularJS v1.4 及更高版本,利用新添加的服務提供了更簡單的解決方案:
以上是如何在沒有 jQuery 的情況下使用 AngularJS 的 $http 服務發布 URL 編碼的表單資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!